Umeng微信、朋友圈分享
阿新 • • 發佈:2019-02-03
1.註冊友盟賬號,新增新應用,獲取APPKEY.
2.下載最新的分享sdk http://dev.umeng.com/social/android/quick-integration
3.將main和platforms裡面的jar包和資原始檔 放入新建 的程式中。
放好後如下圖:
4.在清單檔案AndroidMainfest.xml中新增如下程式碼:
5.在mainActivity的oncreate中新增如下方法<!-- ###################宣告SDK使用的相關許可權###################### --> <!-- 檢測網路狀態 --> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 獲取mac地址作為使用者的備用唯一標識 --> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- 獲取使用者手機的IMEI,用來唯一的標識使用者 --> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <!-- 快取資源優先存入SDcard --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- 允許應用程式聯網,以便向我們的伺服器端傳送資料 --> <uses-permission android:name="android.permission.INTERNET" /> <!-- QQ、QQ空間所需許可權 --> <uses-permission android:name="android.permission.GET_TASKS" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.wxshare.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".wxapi.WXEntryActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:exported="true" android:screenOrientation="portrait" android:theme="@android:style/Theme.Translucent.NoTitleBar" /> <!-- ###################註冊SDK使用的Activity###################### --> <!-- 分享編輯頁 --> <activity android:name="com.umeng.socialize.view.ShareActivity" android:configChanges="orientation|keyboard" android:launchMode="singleTask" android:noHistory="true" android:theme="@style/Theme.UMDialog" android:windowSoftInputMode="stateVisible|adjustResize" > </activity> <!-- ############ QQ空間和QQ SSO授權的Activity註冊 ############ --> <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" /> <!-- 100424468,如果你使用的公用賬號,則不需要修改;否則修改成你在QQ開放平臺申請的 APP ID --> <data android:scheme="tencent100424468" /> </intent-filter> </activity> <activity android:name="com.tencent.connect.common.AssistActivity" android:screenOrientation="portrait" android:theme="@android:style/Theme.Translucent.NoTitleBar" > </activity> <!-- ###################新增UmengAppkey###################### --> <meta-data android:name="UMENG_APPKEY" android:value="你的友盟appkey" > </meta-data> </application>
private void umengShareInit() { //0.微信分享步驟 //1.首先在您的Activity中新增如下成員變數 mController = UMServiceFactory.getUMSocialService("com.umeng.share"); //2.wx967daebe835fbeac是你在微信開發平臺註冊應用的AppID, 這裡需要替換成你註冊的AppID appId = "<span style="font-family: Arial, Helvetica, sans-serif;">微信開發平臺註冊應用的AppID</span>"; appSecret = "微信開發平臺的appSecret"; //3.新增支援微信平臺 UMWXHandler wxHandler = new UMWXHandler(this,appId,appSecret); wxHandler.addToSocialSDK(); //3.1支援微信朋友圈 UMWXHandler wxCircleHandler = new UMWXHandler(this,appId,appSecret); wxCircleHandler.setToCircle(true); wxCircleHandler.addToSocialSDK(); }
6.友盟分享的UI介面可以用友盟自帶的也可以自己佈局。
友盟佈局:
自定義:/** * 友盟自定義UI */ private void showUmengUI() { //4.移除無用的分享圖示 mController.getConfig().removePlatform( SHARE_MEDIA.RENREN, SHARE_MEDIA.QZONE,SHARE_MEDIA.QQ,SHARE_MEDIA.SINA,SHARE_MEDIA.TENCENT); mController.openShare(this, false); //5.設定微信好友分享內容 WeiXinShareContent weixinContent = new WeiXinShareContent(); //設定分享文字 weixinContent.setShareContent("如果你是創業者,那來這裡。。。;如果你是投資者,那來這裡。。。"); //設定title weixinContent.setTitle("測試標題"); //設定分享內容跳轉URL weixinContent.setTargetUrl("https://www.baidu.com/"); //設定分享圖片 UMImage localImage=new UMImage(this,R.drawable.ic_launcher); weixinContent.setShareImage(localImage); //6.分享 mController.setShareMedia(weixinContent); //5.1設定微信朋友圈分享內容 CircleShareContent circleMedia = new CircleShareContent(); circleMedia.setShareContent("如果你是創業者,那來這裡。。。;如果你是投資者,那來這裡。。。"); //設定朋友圈title circleMedia.setTitle("測試標題"); circleMedia.setShareImage(localImage); circleMedia.setTargetUrl("https://www.baidu.com/"); //6.分享 mController.setShareMedia(circleMedia); }
/**
* 顯示您的自定義介面,當用戶點選一個平臺時,直接呼叫directShare或者postShare來分享.
*/
protected void showCustomUI(final boolean isDirectShare) {
View pw_share = LayoutInflater.from(this).inflate(R.layout.pw_share, null);
ImageView iv_wxchat = (ImageView) pw_share.findViewById(R.id.iv_wxchat);
ImageView iv_wxcircle = (ImageView) pw_share.findViewById(R.id.iv_wxcircle);
iv_wxchat.setOnClickListener(this);
iv_wxcircle.setOnClickListener(this);
new AlertDialog.Builder(this).setView(pw_share).create().show();
}
7. 設定分享監聽器,可以監聽使用者分享狀態
/**
* 分享監聽器
*/
mShareListener = new SnsPostListener() {
@Override
public void onStart() {
Log.i("啟動分享", "----------------------");
}
@Override
public void onComplete(SHARE_MEDIA platform, int stCode,
SocializeEntity entity) {
if (stCode == 200) {
Log.i("分享成功", "----------------------");
} else {
Log.i("分享失敗", "----------------------");
}
}
};
8.自定義介面使用者點選分享到微信或朋友圈相應的操作:
case R.id.iv_wxchat:
// 獲取使用者點選的平臺
platform =SHARE_MEDIA.WEIXIN;
if (isDirectShare) {
// 呼叫直接分享
//設定微信好友分享內容
WeiXinShareContent weixinContent = new WeiXinShareContent();
//設定分享文字
weixinContent.setShareContent("內容測試資料,那來這裡。。。;內容測試資料,那來這裡。。。");
//設定title
weixinContent.setTitle("標題測試資料");
//設定分享內容跳轉URL
weixinContent.setTargetUrl("https://www.baidu.com/");
//設定分享圖片
UMImage localImage=new UMImage(this,R.drawable.umeng_socialize_wechat);
weixinContent.setShareImage(localImage);
//分享
mController.setShareMedia(weixinContent);
mController.directShare(this, platform, mShareListener);
} else {
// 呼叫直接分享, 但是在分享前使用者可以編輯要分享的內容
mController.postShare(this, platform, mShareListener);
}
break;
case R.id.iv_wxcircle:
// 獲取使用者點選的平臺
platform =SHARE_MEDIA.WEIXIN_CIRCLE;
if (isDirectShare) {
// 呼叫直接分享
//5.1設定微信朋友圈分享內容
CircleShareContent circleMedia = new CircleShareContent();
circleMedia.setShareContent("內容測試資料,那來這裡。。。;內容測試資料,那來這裡。。。");
//設定朋友圈title
circleMedia.setTitle("標題測試資料");
UMImage localImage=new UMImage(this,R.drawable.umeng_socialize_wxcircle);
circleMedia.setShareImage(localImage);
circleMedia.setTargetUrl("https://www.baidu.com/");
//6.分享
mController.setShareMedia(circleMedia);
mController.directShare(this, platform,
mShareListener);
} else {
// 呼叫直接分享, 但是在分享前使用者可以編輯要分享的內容
mController.postShare(this, platform,
mShareListener);
}
break;
以上程式碼就可以實現微信分享功能,經過測試分享內容需要包含圖片才能有title和跳轉url。
既然是微信分享,想要實現分享功能,還需要在微信開發平臺註冊分享的許可權。在微信平臺申請要注意:應用簽名要改為小寫並且去掉:即:AB:1E 變為:ab1e,否則分享總會提示失敗