友盟分享集成


1、註冊友盟帳號

2、創建項目

3、下載SDK

4、將main文件夾下的資源全部粘貼到項目中



一、CustomShareBoard.java分享選項對話框及其事件

public class CustomShareBoard extends PopupWindow implements OnClickListener {

private UMSocialService mController = UMServiceFactory.getUMSocialService(Constants.DESCRIPTOR);

private Activity mActivity;

public CustomShareBoard(Activity activity) {

super(activity);

this.mActivity = activity;

initView(activity);

}

@SuppressWarnings("deprecation")

private void initView(Context context) {

View rootView = LayoutInflater.from(context).inflate(R.layout.custom_board, null);

rootView.findViewById(R.id.wechat).setOnClickListener(this);

rootView.findViewById(R.id.wechat_circle).setOnClickListener(this);

rootView.findViewById(R.id.qq).setOnClickListener(this);

rootView.findViewById(R.id.qzone).setOnClickListener(this);

setContentView(rootView);

setWidth(LayoutParams.MATCH_PARENT);

setHeight(LayoutParams.WRAP_CONTENT);

setFocusable(true);

setBackgroundDrawable(new BitmapDrawable());

setTouchable(true);

}

@Override

public void onClick(View v) {

int id = v.getId();

switch (id) {

case R.id.wechat:

performShare(SHARE_MEDIA.WEIXIN);

break;

case R.id.wechat_circle:

performShare(SHARE_MEDIA.WEIXIN_CIRCLE);

break;

case R.id.qq:

performShare(SHARE_MEDIA.QQ);

break;

case R.id.qzone:

performShare(SHARE_MEDIA.QZONE);

break;

default:

break;

}

}

private void performShare(SHARE_MEDIA platform) {

mController.postShare(mActivity, platform, new SnsPostListener() {


@Override

public void onStart() {}

@Override

public void onComplete(SHARE_MEDIA platform, int eCode, SocializeEntity entity) {

String showText = platform.toString();

if (eCode == StatusCode.ST_CODE_SUCCESSED) {

showText += "平臺分享成功";

} else {

showText += "平臺分享失敗";

}

Toast.makeText(mActivity, showText, Toast.LENGTH_SHORT).show();

dismiss();

}

});

}

}


二、定義應用相關常量 Contants.java

public class Constants {

       public static final String DESCRIPTOR = "com.umeng.share";

       private static final String TIPS = "請移步官方網站 “;

       private static final String END_TIPS = ", 查看相關說明.";

       public static final String TENCENT_OPEN_URL = TIPS + "http://wiki.connect.qq.com/android_sdk使用說明" + END_TIPS;

       public static final String PERMISSION_URL = TIPS + "http://wiki.connect.qq.com/openapi權限申請" + END_TIPS;


public static final String SOCIAL_LINK = "http://www.umeng.com/social";

public static final String SOCIAL_TITLE = "友盟社會化組件幫助應用快速整合分享功能";

public static final String SOCIAL_IMAGE = "http://www.umeng.com/images/pic/banner_module_social.png";

           public static final String SOCIAL_CONTENT = "友盟社會化組件(SDK)讓移動應用快速整合社交分享功能,我們簡化了社交平臺的接入,爲開發者提供堅實的基礎服務:(一)支持各大主流社交平臺,"+ "(二)支持圖片、文字、gif動圖、音頻、視頻;@好友,關注官方微博等功能" + "(三)提供詳盡的後臺用戶社交行爲分析。http://www.umeng.com/social";

}


三、微信回調.wxapi.WXEntryActivity.java

public class WXEntryActivity extends WXCallbackActivity {}



四、ShareFragment.java 設置分享平臺和所分享的資源

public final UMSocialService mController = UMServiceFactory

.getUMSocialService(com.loda.blueantique.share.bean.Constants.DESCRIPTOR);

// 配置需要分享的相關平臺

public void configPlatforms() {

/**

* 配置分享平臺參數</br>

*/

// 添加新浪SSO授權

mController.getConfig().setSsoHandler(new com.umeng.socialize.sso.SinaSsoHandler());

mController.getConfig().closeToast();

           // 添加QQ、QZone平臺

           addQQQZonePlatform();

           // 添加微信、微信朋友圈平臺

           addWXPlatform();

}

/**

 * @功能描述 : 添加QQ平臺支持 QQ分享的內容, 包含四種類型, 即單純的文字、圖片、音樂、視頻. 參數說明 : title, summary,

*      image url中必須至少設置一個, targetUrl必須設置,網頁地址必須以"http://"開頭 . title :

 *       要分享標題 summary : 要分享的文字概述 image url : 圖片地址 [以上三個參數至少填寫一個] targetUrl

 *       : 用戶點擊該分享時跳轉到的目標地址 [必填] ( 若不填寫則默認設置爲友盟主頁 )

 * @return

*/

private void addQQQZonePlatform() {

             String appId = "1104746222";

  String appKey = "yoLC1aqLsReRuuLa";

// 添加QQ支持, 並且設置QQ分享內容的target url

UMQQSsoHandler qqSsoHandler = new UMQQSsoHandler(AppContext.getContext(), appId, appKey);

qqSsoHandler.setTargetUrl("http://www.umeng.com/social");

           qqSsoHandler.addToSocialSDK();

           // 添加QZone平臺

QZoneSsoHandler qZoneSsoHandler = new QZoneSsoHandler(AppContext.getContext(), appId, appKey);

 qZoneSsoHandler.addToSocialSDK();

}


/**

* @功能描述 : 添加微信平臺分享

* @return

*/

private void addWXPlatform() {

// 注意:在微信授權的時候,必須傳遞appSecret

// wx967daebe835fbeac是你在微信開發平臺註冊應用的AppID, 這裏需要替換成你註冊的AppID

String appId = "wx7696178b7765d8ssd";// "wx967daebe835fssssa";

String appSecret = "4969b2cab9b2541762f733f489fba162";// "5bb696d9ccd75a38c8a0bfe0675559b3";

// 添加微信平臺

UMWXHandler wxHandler = new UMWXHandler(AppContext.getContext(), appId, appSecret);

wxHandler.addToSocialSDK();

          // 支持微信朋友圈

UMWXHandler wxCircleHandler = new UMWXHandler(AppContext.getContext(), appId, appSecret);

wxCircleHandler.setToCircle(true);

wxCircleHandler.addToSocialSDK();

}


五、AndroidManifest.xml 配置註冊文件 

(1)、權限設置

 <!-- ###################聲明SDK使用的相關權限###################### -->

    <!-- 檢測網絡狀態 —>

<uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/>

  <!-- 獲取mac地址作爲用戶的備用唯一標識 -->

 <uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"/>

    <!-- 獲取用戶手機的IMEI,用來唯一的標識用戶 -->

  <uses-permissionandroid:name="android.permission.READ_PHONE_STATE"/>

    <!-- 緩存資源優先存入SDcard -->

    <uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

    <!-- 允許應用程序聯網,以便向我們的服務器端發送數據 -->

    <uses-permissionandroid:name="android.permission.INTERNET"/>

    <!-- QQ、QQ空間所需權限 -->

    <uses-permissionandroid:name="android.permission.GET_TASKS"/>


(2)、友盟註冊

 <!-- 友盟AppKey, 需要替換成你自己的 -->

        <meta-data

            android:name="UMENG_APPKEY"

            android:value="4eaea02c527015373b0003423">

        </meta-data>



(3)、添加各自的分享頁

<!-- 4eaee02c527015373b000022 -->

        <!-- android:value="52a98cf856240b902211203e" > -->

        <!-- 微博分享內容編輯頁 -->

        <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>

        <!-- 騰訊SSO授權的Activity註冊 -->

        <activity

            android:name="com.tencent.tauth.AuthActivity"

            android:launchMode="singleTask"

            android:noHistory="true">

            <intent-filter>

                <actionandroid:name="android.intent.action.VIEW"/>

<categoryandroid:name="android.intent.category.DEFAULT"/>

 <categoryandroid:name="android.intent.category.BROWSABLE"/>

<dataandroid:scheme="tencent1004234223"/>

            </intent-filter>

        </activity>

       <activity

            android:name="com.tencent.connect.common.AssistActivity"

            android:screenOrientation="portrait"

            android:theme=“@android:style/Theme.Translucent.NoTitleBar"

/>

        <!-- 微信回調activity -->

        <activity

            android:name=".wxapi.WXEntryActivity"

            android:configChanges="keyboardHidden|orientation|screenSize"

            android:exported="true"

            android:screenOrientation="portrait"

            android:theme="@android:style/Theme.Translucent.NoTitleBar"/>

發佈了49 篇原創文章 · 獲贊 17 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章