zoukankan      html  css  js  c++  java
  • 试用友盟SDK实现Android分享微信朋友圈

       社会化分享是眼下必学且火热的功能。之前有写第三方登录,那仅仅是社会化分享的一部分。今天来玩玩分享微信朋友圈。

       为了方便操作,还是依照步骤写。

    一,注冊

       注冊应用已经在这里具体说明过了,这里就不多提了。


    二,在微信开放平台中授权开发人员身份,以及注冊应用

       链接:https://open.weixin.qq.com/ 进入管理中心 提交个人(公司)资料注冊开发人员信息(须要审核等待)。通过后再创建移动应用(确保Package和Appname的一致性)之后拿到应用的AppId和Appsecret


    三,開始集成

       下载友盟SDK:http://dev.umeng.com/social/android/sdk-download 选择须要用到的平台以及导入方式 然后将Lib导入项目(也能够通过SDKIntegration.jar生成Lib)

        接着在AndroidManifest.xml中注冊例如以下信息:

      <!-- 友盟Appkey -->     
     <meta-data
                android:name="UMENG_APPKEY"
                android:value="55ab020d67e58e8404004fe6" />
    
            <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
    		   android:name="com.dengyy.demos_dyy.wxapi.WXEntryActivity"
    		   android:theme="@android:style/Theme.Translucent.NoTitleBar"
    		   android:configChanges="keyboardHidden|orientation|screenSize"
    		   android:exported="true"
    		   android:screenOrientation="portrait" />    


      增加权限:

      

       <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
        <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
        <uses-permission android:name="android.permission.READ_PHONE_STATE" />
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.INTERNET" />
        <uses-permission android:name="android.permission.READ_LOGS" />
        <uses-permission android:name="android.permission.CALL_PHONE" />
        <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
        <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    
        <!-- renren sso Permission for Unit Test -->
        <!-- QQ、QQ空间所需权限 -->
        <uses-permission android:name="android.permission.GET_TASKS" />
        <uses-permission android:name="android.permission.SET_DEBUG_APP" />
        <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
        <uses-permission android:name="android.permission.GET_ACCOUNTS" />
        <uses-permission android:name="android.permission.USE_CREDENTIALS" />
        <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />

       之后在Activity
    		// 首先在您的Activity中加入例如以下成员变量
    		mController = UMServiceFactory.getUMSocialService("com.umeng.share");
    		// 设置分享内容
    		mController.setShareContent(content_et.getText().toString());
    		// 设置分享图片, 參数2为图片的url地址
    		mController.setShareMedia(new UMImage(SocialSharingActivity.this,R.drawable.ic_launcher));
    
    		mController.setShareBoardListener(new UMShareBoardListener() {
    
    			@Override
    			public void onShow() {
    				isShow = true;
    			}
    
    			@Override
    			public void onDismiss() {
    				isShow = false;
    			}
    		});
    
    		// 设置分享图片,參数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);
    
    		initWeiXin();
    		initWeiXinPY();

       initWeiXin和initWeiXinPY方法:

    /**
    	 * 微信支持纯文字,纯图片(点击查看大图)。图文,音乐。视频分享。

    SSO设置 */ private void initWeiXin() { String appID = "你在微信开放平台注冊应用id"; String appSecret = "你在微信开放平台注冊应用Secret"; // 加入微信平台 UMWXHandler wxHandler = new UMWXHandler(SocialSharingActivity.this, appID, appSecret); // 设置Title wxHandler.setTitle("title!"); // 设置分享内容 mController.setShareContent(content_et.getText().toString()); // 设置URL wxHandler.setTargetUrl("http://weixin.qq.com/"); wxHandler.addToSocialSDK(); } /** * 朋友圈支持纯文字,纯图片(点击查看大图)。图文,音乐。视频分享。SSO设置 */ private void initWeiXinPY() { String appID = "你在微信开放平台注冊应用id"; String appSecret = "你在微信开放平台注冊应用Secret"; // 加入微信朋友圈 UMWXHandler wxCircleHandler = new UMWXHandler(SocialSharingActivity.this, appID, appSecret); // 设置Title wxCircleHandler.setTitle("title!"); // 设置分享内容 mController.setShareContent(content_et.getText().toString()); // 设置URL wxCircleHandler.setTargetUrl("http://weixin.qq.com/"); wxCircleHandler.setToCircle(true); wxCircleHandler.addToSocialSDK(); }


       打开分享选项页:

      // 是否仅仅有已登录用户才干打开分享选择页
      mController.openShare(SocialSharingActivity.this, false);

      设置分享回调:

       

    @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);
    		}
    	}

        为了方便理解,我将整个activity代码贴出来:

      

    package com.dengyy.demos_dyy.social_sharing_demo;
    
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.KeyEvent;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.view.Window;
    import android.widget.Button;
    import android.widget.EditText;
    
    import com.dengyy.demos_dyy.R;
    import com.umeng.socialize.bean.SHARE_MEDIA;
    import com.umeng.socialize.controller.UMServiceFactory;
    import com.umeng.socialize.controller.UMSocialService;
    import com.umeng.socialize.controller.listener.SocializeListeners.UMShareBoardListener;
    import com.umeng.socialize.media.QQShareContent;
    import com.umeng.socialize.media.QZoneShareContent;
    import com.umeng.socialize.media.UMImage;
    import com.umeng.socialize.sso.QZoneSsoHandler;
    import com.umeng.socialize.sso.SinaSsoHandler;
    import com.umeng.socialize.sso.TencentWBSsoHandler;
    import com.umeng.socialize.sso.UMQQSsoHandler;
    import com.umeng.socialize.sso.UMSsoHandler;
    import com.umeng.socialize.weixin.controller.UMWXHandler;
    
    /**
     * Created by dyy on 2015/7/18.
     */
    public class SocialSharingActivity extends Activity {
    
    	private Button go_btn;
    
    	private EditText content_et;
    
    	private UMSocialService mController;
    
    	private boolean isShow;
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		requestWindowFeature(Window.FEATURE_NO_TITLE);
    		setContentView(R.layout.social_sharing_activity);
    
    		go_btn = (Button) findViewById(R.id.go_btn);
    		content_et = (EditText) findViewById(R.id.content_et);
    
    		initData();
    		
    		mController.getConfig().removePlatform(SHARE_MEDIA.RENREN, SHARE_MEDIA.DOUBAN);
    		go_btn.setOnClickListener(new OnClickListener() {
    			public void onClick(View v) {
    
    				// 是否仅仅有已登录用户才干打开分享选择页
    				mController.openShare(SocialSharingActivity.this, false);
    
    			}
    		});
    	}
    
    	private void initData() {
    
    		// 首先在您的Activity中加入例如以下成员变量
    		mController = UMServiceFactory.getUMSocialService("com.umeng.share");
    		// 设置分享内容
    		mController.setShareContent(content_et.getText().toString());
    		// 设置分享图片, 參数2为图片的url地址
    		mController.setShareMedia(new UMImage(SocialSharingActivity.this,R.drawable.ic_launcher));
    
    		mController.setShareBoardListener(new UMShareBoardListener() {
    
    			@Override
    			public void onShow() {
    				isShow = true;
    			}
    
    			@Override
    			public void onDismiss() {
    				isShow = false;
    			}
    		});
    
    		// 设置分享图片,參数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);
    
    		initWeiXin();
    		initWeiXinPY();
    		initQQ();
    		initQQZone();
    		
    	}
    
    	//隐藏分享面板
    //	public boolean onKeyDown(int keyCode, KeyEvent event) {
    //		if(isShow && keyCode == KeyEvent.KEYCODE_BACK){
    //			mController.dismissShareBoard();
    //			return true;
    //		}
    //		return isShow;
    //	}
    
    	/**
    	 * 微信支持纯文字。纯图片(点击查看大图)。图文,音乐。视频分享。SSO设置
    	 */
    	private void initWeiXin() {
    		String appID = "appID";
    		String appSecret = "appSecret";
    		// 加入微信平台
    		UMWXHandler wxHandler = new UMWXHandler(SocialSharingActivity.this, appID, appSecret);
    		// 设置Title
    		wxHandler.setTitle("title!");
    		// 设置分享内容
    		mController.setShareContent(content_et.getText().toString());
    		// 设置URL
    		wxHandler.setTargetUrl("http://weixin.qq.com/");
    		wxHandler.addToSocialSDK();
    	}
    
    	/**
    	 * 朋友圈支持纯文字,纯图片(点击查看大图),图文,音乐。视频分享。

    SSO设置 */ private void initWeiXinPY() { String appID = "appID"; String appSecret = "appSecret"; // 加入微信朋友圈 UMWXHandler wxCircleHandler = new UMWXHandler(SocialSharingActivity.this, appID, appSecret); // 设置Title wxCircleHandler.setTitle("title!"); // 设置分享内容 mController.setShareContent(content_et.getText().toString()); // 设置URL wxCircleHandler.setTargetUrl("http://weixin.qq.com/"); wxCircleHandler.setToCircle(true); wxCircleHandler.addToSocialSDK(); } /** * QQ SSO设置 */ private void initQQ() { // 參数1为当前Activity,參数2为开发人员在QQ互联申请的APP ID,參数3为开发人员在QQ互联申请的APP kEY. UMQQSsoHandler qqSsoHandler = new UMQQSsoHandler(SocialSharingActivity.this, "APP ID", "APP kEY"); qqSsoHandler.addToSocialSDK(); QQShareContent qqShareContent = new QQShareContent(); qqShareContent.setShareContent(content_et.getText().toString()); qqShareContent.setTitle("title!"); qqShareContent.setShareImage(new UMImage(SocialSharingActivity.this, R.drawable.ic_launcher)); qqShareContent.setTargetUrl("http://www.qq.com/"); mController.setShareMedia(qqShareContent); } /** * QQ空间SSO设置 */ private void initQQZone() { // 參数1为当前Activity。參数2为开发人员在QQ互联申请的APP ID。參数3为开发人员在QQ互联申请的APP kEY. QZoneSsoHandler qZoneSsoHandler = new QZoneSsoHandler(SocialSharingActivity.this, "APP ID", "APP kEY"); qZoneSsoHandler.setTargetUrl("http://www.qq.com/"); qZoneSsoHandler.addToSocialSDK(); QZoneShareContent QZoneShareContent = new QZoneShareContent(); QZoneShareContent.setTitle("title!"); QZoneShareContent.setShareContent(content_et.getText().toString()); QZoneShareContent.setShareImage(new UMImage(SocialSharingActivity.this, R.drawable.ic_launcher)); QZoneShareContent.setTargetUrl("http://www.qq.com/"); mController.setShareMedia(QZoneShareContent); } /** * 新浪微博SSO设置 */ private void initSina() { // 设置新浪SSO handler mController.getConfig().setSsoHandler(new SinaSsoHandler()); } /** * 腾讯微博SSO设置 */ private void initTentenWB() { // 设置腾讯微博SSO handler mController.getConfig().setSsoHandler(new TencentWBSsoHandler()); } @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); } } }

      

        到了这里,基本通过友盟SDK实现了社会化分享功能。

      执行效果:http://wap.youshixiu.com/video/play/198492

      假设想知道关于新浪微博,人人网等其它渠道分享和登录的话。能够查阅友盟官方文档:http://dev.umeng.com/social/android/quick-integration

  • 相关阅读:
    每日总结
    每日总结
    每日总结
    每日总结
    每日总结
    每日总结
    每日总结
    配置SpringMVC(两天)
    layui学习4(三天的)动态表格
    layui的学习使用3表单
  • 原文地址:https://www.cnblogs.com/lytwajue/p/7053750.html
Copyright © 2011-2022 走看看