社交分享组件提供微博、微信、支付宝、QQ、钉钉、短信等渠道的分享功能,提供给开发者统一的接口,无需处理各 SDK 的接口差异性。要将分享组件接入 Android 客户端,您需要配置工程确定基础框架,并添加 share
组件的 SDK。
在接入各渠道之前,必须在分享渠道的官方网站申请账号。例如以下分享渠道的官方网站:
社交分享支持 原生 AAR 接入、mPaaS Inside 接入 和 组件化接入 三种接入方式。
参考 AAR 组件管理,通过 组件管理(AAR) 在工程中安装 分享 组件。
在工程中通过 组件管理 安装 分享 组件。
更多信息,参考 管理组件依赖。
在 Portal 和 Bundle 工程中通过 组件管理 安装 分享 组件。
更多信息,参考 管理组件依赖。
如果使用原生 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();
}
}
本文将结合 社交分享 官方 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>
您需要在 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 中同样会出现此问题。
在文档使用中是否遇到以下问题
更多建议
匿名提交