天天看點

如何在Android上快速內建微信和QQ的分享(Share)能力?

目前微信和QQ已經成為App分享的主要平台,大部分開發者都會首選內建這兩個平台,除了可以選擇直接繼承官方的的SDK外,目前市面上有不少第三方的內建商,幫助開發者打包好了一鍵分享的SDK能力,如:極光,友盟,Mobtech等,這裡主要以友盟內建為例,快速實作在Android上內建兩個平台的分享能力。

第一步:注冊友盟+賬号并擷取一個Appkey

這一步基本是各個平台的必要流程,在友盟官網注冊一個賬号後,

  1. 選擇建立Appkey ,填寫必要的資訊和平台,這裡選擇安卓
如何在Android上快速內建微信和QQ的分享(Share)能力?
  1. 建立成果後,就可以拿到我們的Appkey資訊,一般是一個常字元串
如何在Android上快速內建微信和QQ的分享(Share)能力?

第二步:下載下傳SDK

選擇要內建的平台,我們目前選微信和QQ

如何在Android上快速內建微信和QQ的分享(Share)能力?

下載下傳完成後,解壓會拿到這麼幾個檔案:

如何在Android上快速內建微信和QQ的分享(Share)能力?

将main檔案夾以及platform(選擇微信和QQ)檔案下,對應的資源檔案和jar放入你的工程

第三步:代碼內建

1. 添加回調

微信需要添加回調的Activity,在包名目錄下建立wxapi檔案夾,建立一個名為WXEntryActivity的activity繼承WXCallbackActivity。

如何在Android上快速內建微信和QQ的分享(Share)能力?

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

```