目前微信和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
```