このトピックでは、Social Share SDK を迅速に統合する方法について説明します。
このタスクについて
Social Share コンポーネントを使用すると、Weibo、WeChat、Alipay、QQ、DingTalk、ショートメッセージなどのさまざまなチャネルを通じてコンテンツを共有できます。開発者向けに統一されたインターフェイスを提供するため、各 SDK 間の差異を個別に管理する必要がありません。Android クライアントに Share コンポーネントを統合するには、プロジェクトを設定し、share コンポーネント SDK を追加する必要があります。
前提条件
チャネルと統合する前に、その公式 Web サイトでアカウントを申請する必要があります。例として、以下のものが挙げられます。
Social Share は、native AAR および コンポーネントベース の 2 種類の接続タイプをサポートしています。
native AAR 方式を使用する場合、「プロジェクトへの mPaaS の追加」に記載されている前提条件および後続の手順を完了する必要があります。
コンポーネントベース方式を使用する場合、「コンポーネントベース統合プロセス」を完了する必要があります。
SDK の追加
Native AAR 方式
詳細については、「AAR コンポーネント管理」をご参照ください。コンポーネント管理 (AAR) を使用して、プロジェクトに Share コンポーネントをインストールします。
コンポーネントベース方式
Portal プロジェクトおよび Bundle プロジェクトで コンポーネント管理 を使用して、Share コンポーネントをインストールします。詳細については、「コンポーネント依存関係の管理」をご参照ください。
mPaaS の初期化
native AAR 方式を使用する場合、Application に以下のコードを追加して mPaaS を初期化する必要があります。
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// mPaaS を初期化
MP.init(this);
}
}詳細については、「mPaaS の初期化」をご参照ください。
各プラットフォーム向け Share SDK の使用
このトピックでは、公式の Social Share デモを使用して、ベースライン 10.1.32 以降での Social Share SDK の使用方法を示します。
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 を超えないようにしてください。超えると、WeChat 共有が失敗する可能性があります。Android SDK では現在アイコンサイズをチェックしており、32 KB を超えるアイコンはデフォルトの Alipay アイコンに置き換えられます。
QQ および QZone 共有
QQ 共有に必要な Activity を AndroidManifest.xml に登録する必要があります。登録しない場合、QQ および QZone の共有機能およびコールバック機能が動作しません。
AndroidManifest.xmlに記述した QQ 共有 ID がコード内で登録したものと一致しない場合、QQ 共有のコールバックが中断されます。共有が成功していても、onExceptionコールバックがトリガーされます。ID が一致していることを確認してください。data android:schemeには、対応する QQ 共有 ID を入力する必要があります。形式はtencentの後に QQ ID を続けます。この ID は Tencent Open Platform で申請する必要があります。以下の例では、QQ ID は 1104122330 です。
<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 ドキュメント: