全部产品
云市场
云游戏

快速开始

更新时间:2020-09-28 10:34:56

关于此任务

社交分享组件提供微博、微信、支付宝、QQ、短信等渠道的分享功能,提供给开发者统一的接口,无需处理各 SDK 的接口差异性。要将分享组件接入 Android 客户端,您需要配置工程确定基础框架,并添加 share 组件的 SDK。

前置条件

在接入各渠道之前,必须在分享渠道的官方网站申请账号。例如以下分享渠道的官方网站:

社交分享支持 原生 AAR 接入mPaaS Inside 接入组件化接入 三种接入方式。

添加 SDK

原生 AAR 方式

参考 AAR 组件管理,通过 组件管理(AAR) 在工程中安装 分享 组件。

mPaaS Inside 方式

在工程中通过 组件管理 安装 分享 组件。
更多信息,参考 管理组件依赖

组件化方式

在 Portal 和 Bundle 工程中通过 组件管理 安装 分享 组件。
更多信息,参考 管理组件依赖

初始化 mPaaS

如果使用原生 AAR 方式 / mPaaS Inside 方式,需要初始化 mPaaS。
请在 Application 中添加以下代码:

  1. public class MyApplication extends Application {
  2. @Override
  3. protected void attachBaseContext(Context base) {
  4. super.attachBaseContext(base);
  5. // mPaaS 初始化回调设置
  6. QuinoxlessFramework.setup(this, new IInitCallback() {
  7. @Override
  8. public void onPostInit() {
  9. // 此回调表示 mPaaS 已经初始化完成,mPaaS 相关调用可在这个回调里进行
  10. }
  11. });
  12. }
  13. @Override
  14. public void onCreate() {
  15. super.onCreate();
  16. // mPaaS 初始化
  17. QuinoxlessFramework.init();
  18. }
  19. }

各个平台分享 SDK 使用

本文将结合 社交分享 官方 Demo 介绍如何在 10.1.32 及以上版本的基线中使用社交分享 SDK。

微信分享

您需要手动生成一个特定路径和名称的 Activity 用来接收微信分享的回调事件。这个 Activity 继承自 DefaultWXEntryActivity,路径为 package_name.wxapi.WXEntryActivity。其中,package_name 为应用的包名。

说明:路径和 Activity 名称必须准确,否则将无法收到回调。

查看以下示例,其中包名为 com.mpaas.demo

  1. package com.mpaas.demo.wxapi;
  2. import com.alipay.android.shareassist.DefaultWXEntryActivity;
  3. public class WXEntryActivity extends DefaultWXEntryActivity {
  4. }

AndroidManifest.xml 中对该 Activity 进行注册:

  1. <application>
  2. ···
  3. <activity android:name="com.mpaas.demo.wxapi.WXEntryActivity"
  4. android:exported="true"
  5. android:launchMode="singleTop"></activity>
  6. ···
  7. </application>
说明:设置分享图标时,确保图标的大小不超过 32 KB,否则可能会引起微信分享失败。目前在 Android 端 SDK 做了校验,图标大小超过 32 KB 时会用默认的支付宝图标代替。

QQ、QZone 分享

您需要在 AndroidManifest.xml 中,对 QQ 分享所需要的 Activity 进行注册,否则无法正常使用 QQ、QZone 的分享和回调功能。

说明

  • 若您在 AndroidManifest.xml 中填写的 QQ 分享 ID 和在代码中注册的 QQ 分享 ID 不一致时,会导致 QQ 分享回调错乱的异常,即使分享成功也会回调 onException,请务必仔细检查。
  • data android:scheme 中要填写对应的 QQ 分享 ID,格式为 tencent+QQID (+ 号请忽略)。该 ID 需到 腾讯开放平台 中自行申请。查看以下示例,其中 QQ ID 为 1104122330
    1. <application>
    2. ···
    3. <activity
    4. android:name="com.tencent.connect.common.AssistActivity"
    5. android:configChanges="orientation|keyboardHidden|screenSize"
    6. android:screenOrientation="portrait"
    7. android:theme="@android:style/Theme.Translucent.NoTitleBar"/>
    8. <activity
    9. android:name="com.tencent.tauth.AuthActivity"
    10. android:launchMode="singleTask"
    11. android:noHistory="true">
    12. <intent-filter>
    13. <action android:name="android.intent.action.VIEW"/>
    14. <category android:name="android.intent.category.DEFAULT"/>
    15. <category android:name="android.intent.category.BROWSABLE"/>
    16. <data android:scheme="tencent1104122330"/>
    17. </intent-filter>
    18. </activity>
    19. ···
    20. </application>

微博分享

需要确保应用签名、包名、分享 ID 和在 微博开放平台 中注册的一致,否则将导致分享失败。由此原因导致分享失败时,share 组件的分享回调不会触发分享异常 onException,而会触发分享成功 onComplete。该缺陷属于微博 SDK 缺陷,目前在微博 SDK 官方 Demo 中同样会出现此问题。

相关链接