快速开始

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

关于此任务

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

前置条件

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

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

添加 SDK

原生 AAR 方式

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

mPaaS Inside 方式

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

组件化方式

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

初始化 mPaaS

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

public class MyApplication extends Application {

    @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        // mPaaS 初始化回调设置
        QuinoxlessFramework.setup(this, new IInitCallback() {
            @Override
            public void onPostInit() {
                // 此回调表示 mPaaS 已经初始化完成,mPaaS 相关调用可在这个回调里进行
            }
        });
    }

    @Override
    public void onCreate() {
        super.onCreate();
        // mPaaS 初始化
        QuinoxlessFramework.init();
    }
}

各个平台分享 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: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 中同样会出现此问题。

相关链接

阿里云首页 移动开发平台 mPaaS 相关技术圈