目前微信和QQ已经成为App分享的主要平台,大部分开发者都会首选集成这两个平台,除了可以选择直接继承官方的的SDK外,目前市面上有不少第三方的集成商,帮助开发者打包好了一键分享的SDK能力,如:极光,友盟,Mobtech等,这里主要以友盟集成为例,快速实现在Android上集成两个平台的分享能力。
第一步:注册友盟+账号并获取一个Appkey
这一步基本是各个平台的必要流程,在友盟官网注册一个账号后,
- 选择新建Appkey ,填写必要的信息和平台,这里选择安卓
- 创建成果后,就可以拿到我们的Appkey信息,一般是一个常字符串
第二步:下载SDK
选择要集成的平台,我们当前选微信和QQ
下载完成后,解压会拿到这么几个文件:
将main文件夹以及platform(选择微信和QQ)文件下,对应的资源文件和jar放入你的工程
第三步:代码集成
1. 添加回调
微信需要添加回调的Activity,在包名目录下创建wxapi文件夹,新建一个名为WXEntryActivity的activity继承WXCallbackActivity。
QQ不需要添加Activity,但需要在使用QQ分享或者授权的Activity中,添加如下代码
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data); }
2. 配置Android Manifest XML
微信:
<activity android:name=".wxapi.WXEntryActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:exported="true" android:theme="@android:style/Theme.Translucent.NoTitleBar" />
QQ:注意这里的scheme="tencent100424468",需要替换成你自己在腾讯开放平台申请的QQKey值
<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="tencent100424468" /> </intent-filter> </activity> <activity android:name="com.tencent.connect.common.AssistActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:configChanges="orientation|keyboardHidden|screenSize"/>
3. 在AndroidManifest中添加权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.INTERNET" />
4. 初始化
初始化需要在您的Application中调用我们的初始化接口,这里的这个5a12384aa40fa3551f0001d1 需要替换成我们刚才自己申请的那个Appkey
@Override public void onCreate() { super.onCreate(); UMConfigure.init(this,"5a12384aa40fa3551f0001d1" ,"umeng",UMConfigure.DEVICE_TYPE_PHONE,"");//58edcfeb310c93091c000be2 5965ee00734be40b580001a0 }
接着在application里配置微信开放平台申请的key和security
PlatformConfig.setWeixin("wxdc1e388c3822c80b", "3baf1193c85774b3fd9d18447d76cab0");
到这里我们就已经完成了集成步骤,接下来就可以设置分享的样式和内容了。
5. 设置分享面板
可以用SDK自带的分享样式面板,也可以自己定义面板,如下是使用自带面板:
new ShareAction(MainActivity.this).withText("hello").setDisplayList(SHARE_MEDIA.SINA,SHARE_MEDIA.QQ,SHARE_MEDIA.WEIXIN) .setCallback(umShareListener).open();
不带面板
new ShareAction(MainActivity.this) .setPlatform(SHARE_MEDIA.QQ)//传入平台 .withText("hello")//分享内容 .setCallback(umShareListener)//回调监听器 .share();
6. 设置分享消息类型
下面以分享链接为例:
UMWeb web = new UMWeb(Defaultcontent.url); web.setTitle("This is music title");//标题 web.setThumb(thumb); //缩略图 web.setDescription("my description");//描述
然后调用将这个参数设置到ShareAction中:
new ShareAction(ShareActivity.this) .withMedia(web) .share();
到此我们的分享功能就集成完成了,其他平台或形式,大同小异。
```js ```