分享組件使用記錄,分享組件記錄

來源:互聯網
上載者:User

分享組件使用記錄,分享組件記錄

應用中經常使用到分享組件,當然,很多第三方都提供了社交分享,像ShareSDK、友盟都有很好的整合。

這裡既不是sharesdk也不是友盟

今天記錄一下整合的細節:

①無論分享到哪個平台,都需要到這個平台註冊相應的應用。

②以分享到、朋友圈、微博為例:

/** *  */public class Constant {// public static final String AppID = "wx9117e18be87a2aca";public static final String AppSecret = "1ed5744aa7258808567873a2aa764409";// 這裡是sina開發的appkey 交大移動圖書館public static final String APP_KEY = "2253710460";public static final String REDIRECT_URL = "http://blog.csdn.net/leokelly001";public static final String SCOPE = "email,direct_messages_read,direct_messages_write,"+ "friendships_groups_read,friendships_groups_write,statuses_to_me_read,"+ "follow_app_official_microblog," + "invitation_write";// 應用申請的進階許可權}

share2weibo.java

package com.leo.xjtulib.scanbook.common;import java.io.File;import android.app.Activity;import android.content.Intent;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.os.Bundle;import android.widget.Toast;import com.leo.xjtulib.R;import com.sina.weibo.sdk.api.ImageObject;import com.sina.weibo.sdk.api.TextObject;import com.sina.weibo.sdk.api.WebpageObject;import com.sina.weibo.sdk.api.WeiboMultiMessage;import com.sina.weibo.sdk.api.share.BaseResponse;import com.sina.weibo.sdk.api.share.IWeiboHandler;import com.sina.weibo.sdk.api.share.IWeiboShareAPI;import com.sina.weibo.sdk.api.share.SendMultiMessageToWeiboRequest;import com.sina.weibo.sdk.api.share.WeiboShareSDK;import com.sina.weibo.sdk.constant.WBConstants;import com.sina.weibo.sdk.utils.Utility;/** *  */public class Share2Weibo extends Activity implements IWeiboHandler.Response {private IWeiboShareAPI mWeiboShareAPI;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);String name = getIntent().getStringExtra("name");String url = getIntent().getStringExtra("url");String picurl = getIntent().getStringExtra("picurl");String score = getIntent().getStringExtra("score");System.out.println("-------start1-------");mWeiboShareAPI = WeiboShareSDK.createWeiboAPI(this, Constant.APP_KEY);mWeiboShareAPI.registerApp();System.out.println("-------start2-------");sendMultiMessage(score, name, url, picurl);}private TextObject getTextObj(String score) {TextObject textObject = new TextObject();textObject.text = "我在@交大移動圖書館  發現了一本不錯的書,豆瓣評分:" + score + "分,快來看看吧";return textObject;}private WebpageObject getWebpageObj(String name, String url) {WebpageObject mediaObject = new WebpageObject();mediaObject.identify = Utility.generateGUID();mediaObject.title = name;mediaObject.description = name;mediaObject.setThumbImage(BitmapFactory.decodeResource(getResources(),R.drawable.ic_launcher));if (url.equals(""))url = "http://book.douban.com";mediaObject.actionUrl = url;mediaObject.defaultText = "";return mediaObject;}private ImageObject getImageObj(String picurl) {ImageObject imageObject = new ImageObject();String tempPath = FileUtils.getCachePath() + "/temp.jpg";File f = new File(tempPath);if (f.exists()) {Bitmap thumb = BitmapFactory.decodeFile(tempPath);imageObject.setImageObject(thumb);} else {Bitmap thumb = BitmapFactory.decodeResource(getResources(),R.drawable.ic_launcher);imageObject.setImageObject(thumb);}return imageObject;}private void sendMultiMessage(String score, String name, String url,String picurl) {WeiboMultiMessage weiboMessage = new WeiboMultiMessage();// 初始化微博的分享訊息// System.out.println("----------初始化微博的分享訊息--------");weiboMessage.textObject = getTextObj(score);weiboMessage.imageObject = getImageObj(picurl);weiboMessage.mediaObject = getWebpageObj(name, url);SendMultiMessageToWeiboRequest request = new SendMultiMessageToWeiboRequest();request.transaction = String.valueOf(System.currentTimeMillis());request.multiMessage = weiboMessage;mWeiboShareAPI.sendRequest(request);// System.out.println("----------結束微博的分享訊息--------");}@Overrideprotected void onNewIntent(Intent intent) {super.onNewIntent(intent);mWeiboShareAPI.handleWeiboResponse(intent, this);}@Overridepublic void onResponse(BaseResponse baseResp) {System.out.println("------onResponse--------");switch (baseResp.errCode) {case WBConstants.ErrorCode.ERR_OK:Toast.makeText(this, "分享成功", Toast.LENGTH_LONG).show();finish();break;case WBConstants.ErrorCode.ERR_CANCEL:Toast.makeText(this, "取消分享", Toast.LENGTH_LONG).show();finish();break;case WBConstants.ErrorCode.ERR_FAIL:Toast.makeText(this, "分享失敗", Toast.LENGTH_LONG).show();finish();break;default:finish();break;}}}

share2weixin.java


package com.leo.xjtulib.scanbook.common;import java.io.File;import android.app.Activity;import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.os.Bundle;import com.leo.xjtulib.R;import com.tencent.mm.sdk.openapi.IWXAPI;import com.tencent.mm.sdk.openapi.SendMessageToWX;import com.tencent.mm.sdk.openapi.WXAPIFactory;import com.tencent.mm.sdk.openapi.WXMediaMessage;import com.tencent.mm.sdk.openapi.WXWebpageObject;import com.tencent.mm.sdk.platformtools.Util;/** *  */public class Share2Weixin extends Activity {private IWXAPI WXAPI;private static final int TIMELINE = 1;private static final int FRIEND = 2;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);final String name = getIntent().getStringExtra("name");final String url = getIntent().getStringExtra("url");final String score = getIntent().getStringExtra("score");final int type = getIntent().getIntExtra("type", 1);share(Share2Weixin.this, type, name, score, url);}public void share(Context context, int type, String name, String score,String url) {WXAPI = WXAPIFactory.createWXAPI(context, Constant.AppID);WXAPI.registerApp(Constant.AppID);WXWebpageObject webpage = new WXWebpageObject();if (url.equals(""))url = "http://book.douban.com";webpage.webpageUrl = url;WXMediaMessage msg = new WXMediaMessage(webpage);if (type == TIMELINE) {msg.title = "我在@交大移動圖書館 發現了一本不錯的書,《" + name + "》豆瓣評分:" + score+ "分";msg.description = name;} else {msg.title = name;msg.description = "我在@交大移動圖書館  發現了一本不錯的書,《" + name + "》豆瓣評分:"+ score + "分";}String tempPath = FileUtils.getCachePath() + "/temp.jpg";File f = new File(tempPath);if (f.exists()) {Bitmap thumb = BitmapFactory.decodeFile(tempPath);msg.thumbData = Util.bmpToByteArray(thumb, true);} else {Bitmap thumb = BitmapFactory.decodeResource(getResources(),R.drawable.ic_launcher);msg.thumbData = Util.bmpToByteArray(thumb, true);}SendMessageToWX.Req req = new SendMessageToWX.Req();req.transaction = "";req.message = msg;req.scene = type == TIMELINE ? SendMessageToWX.Req.WXSceneTimeline: SendMessageToWX.Req.WXSceneSession;WXAPI.sendReq(req);finish();}}


在應用中啟動activity

Intent intent = new Intent(BookViewActivity_scanbook.this,Share2Weibo.class);intent.putExtra("url", mBook.getUrl());intent.putExtra("score",mBook.getRate() + "");intent.putExtra("picurl",mBook.getBitmap());intent.putExtra("name",mBook.getTitle());startActivity(intent);



在xml中註冊

<pre name="code" class="html"><activity            android:name="com.leo.xjtulib.scanbook.common.Share2Weibo"            android:configChanges="keyboardHidden|orientation"            android:screenOrientation="portrait" >            <intent-filter>                <action android:name="com.sina.weibo.sdk.action.ACTION_SDK_REQ_ACTIVITY" />                <category android:name="android.intent.category.DEFAULT" />            </intent-filter>        </activity>        <activity            android:name="com.leo.xjtulib.scanbook.common.Share2Weixin"            android:configChanges="keyboardHidden|orientation"            android:screenOrientation="portrait" >        </activity>


用到的jar包下載:http://download.csdn.net/detail/leokelly001/8693485

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.