ソーシャル共有 SDK を Android プロジェクトに統合し、Weibo、WeChat、Alipay、QQ、DingTalk、SMS への共有を有効にします。
概要
ソーシャル共有コンポーネントは、Weibo、WeChat、Alipay、QQ、DingTalk、SMS など、複数のチャネルにわたって統一された共有インターフェースを提供するため、各プラットフォームの SDK 間の API の違いを処理する必要がありません。統合には、Android プロジェクトに share コンポーネントを追加し、プラットフォームごとの設定を行う必要があります。
2 つの統合方法があります。
ネイティブ AAR 統合: SDK を AAR 依存関係として直接追加します。まず、mPaaS をプロジェクトに追加の手順を完了してください。
コンポーネントベースの統合: Portal プロジェクトと Bundle プロジェクトを通じて SDK を管理します。まず、コンポーネントベースの統合プロセスを完了してください。
前提条件
サポートする各プラットフォームで開発者アカウントを登録してください。
SDK の追加
ネイティブ AAR 統合
AAR コンポーネントの管理に従い、コンポーネント管理 (AAR) を使用して Share コンポーネントをインストールします。
重要
バージョン 10.2.3.76 以降、ソーシャル共有コンポーネントには Weibo SDK がバンドルされなくなりました。Weibo SDK を使用する必要がある場合は、コンパイルエラーを回避するために、公式の Weibo SDK を明示的に追加してください。
dependencies {
implementation "io.github.sinaweibosdk:core:13.10.8@aar"
}
configurations.all {
resolutionStrategy {
exclude group:'com.sina.weibo.sdk', module: 'core'
exclude group:'com.alipay.android.phone.mobilecommon',module:'share_weibo'
}
}
Weibo SDK を使用せずに古い Weibo 共有機能を引き続き使用するには、代わりにレガシービルドを固定してください。
configurations.all {
resolutionStrategy {
force 'com.alipay.android.phone.mobilecommon:share-build:1.3.0.250721165359'
}
}
コンポーネントベースの統合
Portal プロジェクトと Bundle プロジェクトで、コンポーネント管理 を使用して Share コンポーネントをインストールします。詳細については、コンポーネント依存関係の管理をご参照ください。
mPaaS の初期化
ネイティブ AAR 統合の場合、Application クラスで mPaaS を初期化します。
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// mPaaS を初期化します
MP.init(this);
}
}
初期化オプションの詳細については、mPaaS の初期化をご参照ください。
プラットフォーム固有の設定
以下の例では、ベースライン 10.1.32 以降の公式 ソーシャル共有デモを使用しています。
WeChat 共有
WeChat 共有のコールバックを受け取るための Activity を作成します。この Activity は DefaultWXEntryActivity を継承し、package_name.wxapi.WXEntryActivity のパスに配置する必要があります。ここで、package_name はアプリケーションのパッケージ名です。
パスと Activity 名は正確に指定する必要があります。パスが正しくない場合、コールバックは受信されません。
パッケージ名が com.mpaas.demo のプロジェクトの場合:
package com.mpaas.demo.wxapi;
import com.alipay.android.shareassist.DefaultWXEntryActivity;
public class WXEntryActivity extends DefaultWXEntryActivity {
}
Activity を AndroidManifest.xml に登録します。
<application>
···
<activity android:name="com.mpaas.demo.wxapi.WXEntryActivity"
android:exported="true"
android:launchMode="singleTop">
</activity>
···
</application>
共有アイコンは 32 KB 未満にしてください。アイコンが大きすぎると、mPaaS SDK がこれを拒否し、SDK 内部のデフォルトアイコン (Alipay のアイコン) に置き換えます。これにより、WeChat 共有が失敗する可能性があります。
QQ と QZone の共有
QQ 共有の Activity を AndroidManifest.xml に登録します。この登録がないと、QQ と QZone の共有およびコールバックは機能しません。
AndroidManifest.xmlの QQ 共有 ID は、コードで登録した ID と一致させる必要があります。不一致の場合、共有が成功してもonExceptionコールバックが呼び出されます。data android:schemeフィールドに、QQ 共有 ID をtencent+QQIDの形式で、プラス記号 (+) を付けずに入力します。この ID は Tencent オープンプラットフォームで申請します。例:tencent1104122330。
<application>
···
<activity
android:name="com.tencent.connect.common.AssistActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.Translucent.NoTitleBar"/>
<activity
android:name="com.tencent.tauth.AuthActivity"
android:launchMode="singleTask"
android:exported="true"
android:noHistory="true">
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="tencent1104122330"/>
</intent-filter>
</activity>
···
</application>
Weibo 共有
アプリ署名、パッケージ名、共有 ID は、Weibo Open Platform で登録した情報と一致させる必要があります。不一致の場合、共有はサイレントに失敗します。share コンポーネントは onException の代わりに onComplete を呼び出します。これは、公式の Weibo SDK デモにも影響を与える Weibo SDK の既知の不具合です。
関連リンク
コードサンプルと使用方法の詳細については、コードサンプルの取得をご参照ください。
-
関連する API ドキュメント: