日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

友盟分享快速集成--学习记录

發布時間:2024/4/15 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 友盟分享快速集成--学习记录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1 產品概述

友盟社會化組件,可以讓移動應用快速具備社會化分享、登錄、評論、喜歡等功能,并提供實時、全面的社會化數據統計分析服務。

指南將會手把手教你使用社會化組件SDK,用5分鐘為APP增加新浪微博、騰訊微博、人人網分享功能。

注意:本文示例代碼均針對最新版SDK,如果你所用SDK的類名或方法名與此文不符合,請使用你所用SDK的隨包文檔、或者下載使用最新版SDK。

2 獲取友盟Appkey

如果你之前已經在友盟注冊了應用,并獲取到了Appkey,可以繼續使用它.

如果你尚未在友盟注冊開發者賬號,需要先注冊,注冊之后登錄你的賬號,點擊**添加新應用**,填寫完應用基本信息后,將進入"下載SDK并添加代碼"頁面,此頁面即可得到Appkey。

1》注冊:http://www.umeng.com/users/sign_up

以上信息,是我隨機填寫的,目的只是為了說明如何填寫各項內容(帶星號的為必填內容)。填寫完畢后,點擊“注冊”。

2》注冊后,你會收到激活郵件,點擊里面的激活鏈接,即可完成激活。

3》激活后,登錄賬號并選擇“添加新應用”,按照提示填寫信息,以便獲取Appkey。




記住此Appkey,以便后面使用。

3 下載并安裝SDK

3.1 下載SDK最新版


點擊“下載”,并選擇你要分享的平臺和其他工具,如下圖所示:

點擊“下載”后,即可得到SDK包。

3.2 添加代碼和資源引用

jar文件對應列表

平臺 jar文件
騰訊微博 SocialSDK_TencentWB_1.jar,SocialSDK_TencentWB_2.jar
QQ空間 SocialSDK_QQZone_1.jar,SocialSDK_QQZone_2.jar,SocialSDK_QQZone_3.jar
微信好友 SocialSDK_WeiXin_1.jar,SocialSDK_WeiXin_2.jar
QQ SocialSDK_QQZone_1.jar,SocialSDK_QQZone_2.jar,SocialSDK_QQZone_3.jar

注意

1:QQ和QQ Zone SSO(免登錄)引用的jar文件相同。當需要同時支持QQ和QQ Zone的時候,只需添加一次SocialSDK_QQZone_1.jar,SocialSDK_QQZone_2.jar文件即可.
2:由于我們對微信的包名做了修改(libammsdk.jar -> SocialSDK_WeiXin.jar),如出現"Unable to execute dex: Multiple dex files define "問題,請刪除libammsdk.jar或者SocialSDK_WeiXin.jar中的一個即可解決問題。

添加資源文件和jar文件有三種方式,請根據您的需求進行選擇

方法A:快速集成工具 ( 推薦 )

1:解壓SDK下載包,雙擊運行SDK根目錄下的SDKIntegration.jar或者在命令行下輸入java -jar SDKIntegration.jar運行集成工具;


2:選擇Android工程的根目錄,并且填寫您的友盟App Key;
3:勾選所需平臺和組件,點擊"快速集成";


4:檢查AndroidManifest.xml、jar文件是否正確。如果集成了QQ或者QZone,請修改相應地appid。如下圖所示:


方法B:添加工程引用(升級方便,推薦)

解壓SDK壓縮包,將文件夾中的social_sdk_library_project文件夾導入Eclipse,并在您的工程中添加對此項目的引用即可。

方法C:添加資源到現有項目中

解壓SDK壓縮包,將文件夾中的'main/libs'和'main/res'文件夾復制到你的項目工程根目錄下(如使用'ADT 17'以下用戶需要手動添加'libs'下的jar文件到工程Path中):


3.3 Manifest配置,添加友盟Appkey/Activity/權限

<?xml version="1.0" encoding="utf-8" standalone="no"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.demo.umengdemo"android:versionCode="1"android:versionName="1.0" ><uses-sdkandroid:minSdkVersion="8"android:targetSdkVersion="19" /><applicationandroid:allowBackup="true"android:icon="@drawable/ic_launcher"android:label="@string/app_name"android:theme="@style/AppTheme" ><activityandroid:name=".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><!-- ###################添加UmengAppkey###################### --><meta-dataandroid:name="UMENG_APPKEY"android:value="在這里添加你自己的Appkey" /><!-- ###################注冊SDK使用的Activity###################### --><!-- 分享編輯頁 --><activityandroid: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" /><activityandroid:name=".wxapi.WXEntryActivity"android:configChanges="keyboardHidden|orientation|screenSize"android:exported="true"android:screenOrientation="portrait"android:theme="@android:style/Theme.Translucent.NoTitleBar" /><!-- ############ QQ空間和QQ SSO授權的Activity注冊 ############ --><activityandroid:name="com.tencent.tauth.AuthActivity"android:configChanges="orientation|keyboard"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><activityandroid:name="com.tencent.connect.common.AssistActivity"android:screenOrientation="portrait"android:theme="@android:style/Theme.Translucent.NoTitleBar" /></application><!-- ###################聲明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" /><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /></manifest>

如果選用多種UmengSDK產品使用不同Appkey,可為SocialSDK配置單獨的appkey,如下:

/*<span style="background-color: rgb(255, 255, 0);">代碼添加Appkey</span>,如果設置了非null值,SocialSDK將使用該值.*/ SocializeConstants.APPKEY = "xxxxxxxxx";

4 打開平臺選擇面板

4.1 首先在您的Activity中添加如下成員變量并設置分享內容

// 首先在您的Activity中添加如下成員變量 final UMSocialService mController = UMServiceFactory.getUMSocialService("com.umeng.share"); // 設置分享內容 mController.setShareContent("友盟社會化組件(SDK)讓移動應用快速整合社交分享功能,http://www.umeng.com/social"); // 設置分享圖片, 參數2為圖片的url地址 mController.setShareMedia(new UMImage(getActivity(), "http://www.umeng.com/images/pic/banner_module_social.png")); // 設置分享圖片,參數2為本地圖片的資源引用 //mController.setShareMedia(new UMImage(getActivity(), R.drawable.icon)); // 設置分享圖片,參數2為本地圖片的路徑(絕對路徑) //mController.setShareMedia(new UMImage(getActivity(), // BitmapFactory.decodeFile("/mnt/sdcard/icon.png")));// 設置分享音樂 //UMusic uMusic = new UMusic("http://sns.whalecloud.com/test_music.mp3"); //uMusic.setAuthor("GuGu"); //uMusic.setTitle("天籟之音"); // 設置音樂縮略圖 //uMusic.setThumb("http://www.umeng.com/images/pic/banner_module_social.png"); //mController.setShareMedia(uMusic);// 設置分享視頻 //UMVideo umVideo = new UMVideo( // "http://v.youku.com/v_show/id_XNTE5ODAwMDM2.html?f=19001023"); // 設置視頻縮略圖 //umVideo.setThumb("http://www.umeng.com/images/pic/banner_module_social.png"); //umVideo.setTitle("友盟社會化分享!"); //mController.setShareMedia(umVideo);

人人網分享時,如果不設置website,點擊¨應用名稱¨或者¨圖片¨將跳轉到人人網主頁;如果設置website將跳轉到此website的頁面。

設置website的方式如下:

mController.setAppWebSite(SHARE_MEDIA.RENREN, "http://www.umeng.com/social");

4.2 通過某個按鈕或其他方法彈出分享面板

mController.getConfig().removePlatform( SHARE_MEDIA.RENREN, SHARE_MEDIA.DOUBAN); yourShareButton.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// 是否只有已登錄用戶才能打開分享選擇頁mController.openShare(getActivity(), false);} });

5 驗證效果

編譯并運行后,點擊添加分享功能的View出現如下頁面,那么說明你已經集成成功基本的分享功能和平臺了!但是,為了使您的用戶有更好的分享體驗,以及您的應用有更多的分享量,更好地在社交平臺上傳播,我們建議您按照下面的指引進行SSO(免登錄)和新平臺的設置。



6 各平臺SSO(免登錄)配置

6.1 配置SSO授權回調

如果有使用任一平臺的SSO授權或者集成了facebook平臺, 則必須在對應的activity中實現onActivityResult方法, 并添加如下代碼

@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);/**使用SSO授權必須添加如下代碼 */UMSsoHandler ssoHandler = mController.getConfig().getSsoHandler(requestCode) ;if(ssoHandler != null){ssoHandler.authorizeCallBack(requestCode, resultCode, data);}<span style="color:#ffffff;"> }</span>
下面以分享到QQ和QQ空間為例進行說明

6.3?分享給QQ好友

6.3.1 添加QQ分享所依賴的jar文件

  • 解壓已下載的zip文件,將platforms/qq_zone/libs目錄中SocialSDK_QQZone_1.jar,SocialSDK_QQZone_2.jar,SocialSDK_QQZone_3.jar拷貝到工程的libs(如果沒有此目錄,新建libs目錄)目錄中。
  • 在libs目錄中找到SocialSDK_QQZone_1.jar,SocialSDK_QQZone_2.jar,SocialSDK_QQZone_3.jar文件,鼠標右鍵-->Add to Build Path。
  • 將解壓目錄中platforms/qq_zone/res文件拷貝至你工程res目錄。
  • 在AndroidManifest.xml中注冊AuthActivity,QQ空間和QQ共用該授權Activity,具體配置參考上文的AndroidManifest.xml文件。
  • 請在QQ互聯填寫簽名:移動應用信息->平臺信息->apk簽名.(簽名地址)。
  • 以上1234步,可以直接略過,因為我們我們選擇如下的方式添的SDK,這種方式已經幫我們做好了1234步。所以推薦這種方式添加SDK.

    6.3.2 添加如下集成代碼

    //參數1為當前Activity,參數2為開發者在QQ互聯申請的APP ID,參數3為開發者在QQ互聯申請的APP kEY. UMQQSsoHandler qqSsoHandler = new UMQQSsoHandler(getActivity(), "100424468","c7394704798a158208a74ab60104f0ba"); qqSsoHandler.addToSocialSDK();

    6.4?SSO(免登錄)分享到QQ空間

    6.4.1 添加QQ空間所依賴的jar文件跟資源文件

    注意在QQ互聯填寫簽名:移動應用信息->平臺信息->apk簽名。移動應用信息->平臺信息->apk簽名.(簽名地址) 如果已經添加了SocialSDK_QQZone_1.jar,SocialSDK_QQZone_2.jar,SocialSDK_QQZone_3.jar文件,則不需要再次添加。
    1.1 解壓已下載的zip文件,將platforms/qq_qzone/libs中 SocialSDK_QQZone_1.jar,SocialSDK_QQZone_2.jar,SocialSDK_QQZone_3.jar拷貝到工程的libs(如果沒有此目錄,新建libs目錄)目錄中。
    1.2 在libs目錄中找到SocialSDK_QQZone_1.jar,SocialSDK_QQZone_2.jar,SocialSDK_QQZone_3.jar文件,鼠標右鍵-->Add to Build Path。
    1.3 將解壓目錄中platforms/qq_zone/res文件拷貝至你工程res目錄。?

    1.4 在AndroidManifest.xml中注冊AuthActivity,QQ空間和QQ共用該授權Activity,具體配置參考上文的AndroidManifest.xml文件。

    ps:由于我們選擇了A方式添加了SDK ,所以以上四步也可以省略了。可見A方式很方便,所以推薦使用A方式。

    6.4.2 在集成代碼中添加如下代碼

    //參數1為當前Activity,參數2為開發者在QQ互聯申請的APP ID,參數3為開發者在QQ互聯申請的APP kEY. QZoneSsoHandler qZoneSsoHandler = new QZoneSsoHandler(getActivity(), "100424468","c7394704798a158208a74ab60104f0ba"); qZoneSsoHandler.addToSocialSDK();

    例如我在MainActivity中主要代碼如下:

    package com.demo.umengdemo;import android.content.Intent; import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button;import com.umeng.socialize.bean.SHARE_MEDIA; import com.umeng.socialize.controller.UMServiceFactory; import com.umeng.socialize.controller.UMSocialService; import com.umeng.socialize.media.UMImage; import com.umeng.socialize.sso.QZoneSsoHandler; import com.umeng.socialize.sso.UMQQSsoHandler; import com.umeng.socialize.sso.UMSsoHandler;public class MainActivity extends ActionBarActivity {// 首先在您的Activity中添加如下成員變量final UMSocialService mController = UMServiceFactory.getUMSocialService("com.umeng.share");//觸發分享文字和圖片的按鈕private Button sharePic;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);init();}private void init() {//初始化控件并添加相應事件sharePic = (Button) findViewById(R.id.sharePic);sharePic.setOnClickListener(myClickListener);}OnClickListener myClickListener = new OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubswitch (v.getId()) {case R.id.sharePic:mController.getConfig().removePlatform(SHARE_MEDIA.RENREN,SHARE_MEDIA.DOUBAN);sharePicClick();break;default:break;}}};private void sharePicClick() {Log.i("CXC", "---sharePicClick");System.out.println("---MainActivity.sharePicClick()");//參數1為當前Activity,參數2為開發者在QQ互聯申請的APP ID,參數3為開發者在QQ互聯申請的APP kEY.UMQQSsoHandler qqSsoHandler = new UMQQSsoHandler(this,"100424468", "c7394704798a158208a74ab60104f0ba");qqSsoHandler.addToSocialSDK();QZoneSsoHandler qZoneSsoHandler = new QZoneSsoHandler(this,"100424468", "c7394704798a158208a74ab60104f0ba");qZoneSsoHandler.addToSocialSDK();// 設置分享內容mController.setShareContent("友盟社會化組件(SDK)讓移動應用快速整合社交分享功能--cxc,http://www.umeng.com/social");// 設置分享圖片,參數2為本地圖片的資源引用mController.setShareMedia(new UMImage(this, R.drawable.ic_launcher));// 是否只有已登錄用戶才能打開分享選擇頁mController.openShare(this, false);}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);/** 使用SSO授權必須添加如下代碼 */UMSsoHandler ssoHandler = mController.getConfig().getSsoHandler(requestCode);if (ssoHandler != null) {ssoHandler.authorizeCallBack(requestCode, resultCode, data);}}//其他代碼省略了。。。。 }
    至此,利用友盟快速分享內容到QQ和QQ空間的過程就結束了。

    需要注意的地方我在上面都做了標記,看的時候先看一上官網上的操作文檔,再結合實際,把代碼添加到相應的地方。

    想分享內容到更多的平臺,比如微信,人人網等可以參考官網文檔。

    總結

    以上是生活随笔為你收集整理的友盟分享快速集成--学习记录的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。