快速开始

本文介绍的是快速接入社交分享 SDK 的操作步骤。

关于此任务

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

前置条件

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

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

添加 SDK

原生 AAR 方式

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

组件化方式

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

初始化 mPaaS

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

public class MyApplication extends Application {
    
    @Override
    public void onCreate() {
        super.onCreate();
        // mPaaS 初始化
        MP.init(this);    
    }
}

详情请参考:初始化 mPaaS

各个平台分享 SDK 使用

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

微信分享

您需要手动生成一个特定路径和名称的 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 {
}

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

<application>
      ···
      <activity android:name="com.mpaas.demo.wxapi.WXEntryActivity"
      android:exported="true"
      android:launchMode="singleTop">
			</activity>
      ···
</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。

<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>

微博分享

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

相关链接