Android之微信開放平台實現分享(分享好友和朋友圈)


開發中分享操作往往經常遇到,而且還是一些比較大型一定的平台,如微信,QQ,微博等。寫這篇博客主要是把微信的的分享和相關操作表達一下,分享可以包含:文字,視頻,音樂,圖片等分享。

分享可以有 分享給好友,群,朋友圈等。

效果如下圖:(注意:功能根據自己的需要選擇就可以了)

            

准備工作:

微信開放平台創建應用,操作步驟請看博客:Android之微信開放平台創建應用

成功之后得到AppId,放入項目中。

public class Constants {
    // APP_ID 替換為你的應用從官方網站申請到的合法appId==
    public static final String APP_ID = "wx1b73fd7b49ffa027";
    
    public static class ShowMsgActivity {
        public static final String STitle = "showmsg_title";
        public static final String SMessage = "showmsg_message";
        public static final String BAThumbData = "showmsg_thumb_data";
    }
public class AppRegister extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        final IWXAPI api = WXAPIFactory.createWXAPI(context, null);

        // 將該app注冊到微信
        api.registerApp(Constants.APP_ID);
    }
}

 

文本分享代碼:

// 初始化一個WXTextObject對象
                        WXTextObject textObj = new WXTextObject();
                        textObj.text = text;
                        // 用WXTextObject對象初始化一個WXMediaMessage對象
                        WXMediaMessage msg = new WXMediaMessage();
                        msg.mediaObject = textObj;
                        // 發送文本類型的消息時,title字段不起作用
                        msg.title = "Will be ignored";
                        msg.description = text;

                        // 構造一個Req
                        SendMessageToWX.Req req = new SendMessageToWX.Req();
                        req.transaction = buildTransaction("text"); // transaction字段用於唯一標識一個請求
                
                        req.message = msg;
                        /**
                         * 判斷是否是朋友圈
                         */
                        req.scene = isTimelineCb.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession;
                        
                        // 調用api接口發送數據到微信
                        api.sendReq(req);

 

圖片分享代碼:(包含 本地圖片,SD卡圖片,網絡圖片)

Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.send_img);
                            WXImageObject imgObj = new WXImageObject(bmp);
                            WXMediaMessage msg = new WXMediaMessage();
                            msg.mediaObject = imgObj;
                            
                            Bitmap thumbBmp = Bitmap.createScaledBitmap(bmp, THUMB_SIZE, THUMB_SIZE, true);
                            bmp.recycle();
                            msg.thumbData = Util.bmpToByteArray(thumbBmp, true);  // 設置所圖;

                            SendMessageToWX.Req req = new SendMessageToWX.Req();
                            req.transaction = buildTransaction("img");
                            req.message = msg;
                            req.scene = isTimelineCb.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession;
                            api.sendReq(req);

音樂分享代碼

 

WXMusicObject music = new WXMusicObject();
                            music.musicUrl="http://staff2.ustc.edu.cn/~wdw/softdown/index.asp/0042515_05.ANDY.mp3";
                            WXMediaMessage msg = new WXMediaMessage();
                            msg.mediaObject = music;
                            msg.title = "標題";
                            msg.description = "描述信息";

                            Bitmap thumb = BitmapFactory.decodeResource(getResources(), R.drawable.send_music_thumb);
                            msg.thumbData = Util.bmpToByteArray(thumb, true);

                            SendMessageToWX.Req req = new SendMessageToWX.Req();
                            req.transaction = buildTransaction("music");
                            req.message = msg;
                            req.scene = isTimelineCb.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession;
                            api.sendReq(req);

視頻分享代碼

WXVideoObject video = new WXVideoObject();
                            video.videoUrl = "url....mp4";//mp4視頻路徑
                            WXMediaMessage msg = new WXMediaMessage(video);
                            msg.title = "標題"; msg.description = "描述信息";
Bitmap thumb = BitmapFactory.decodeResource(getResources(), R.drawable.send_music_thumb); msg.thumbData = Util.bmpToByteArray(thumb, true); SendMessageToWX.Req req = new SendMessageToWX.Req(); req.transaction = buildTransaction("video"); req.message = msg; req.scene = isTimelineCb.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession; api.sendReq(req);

 

網頁分享代碼:

WXWebpageObject webpage = new WXWebpageObject();
                            webpage.webpageUrl = "http://www.baidu.com";
                            WXMediaMessage msg = new WXMediaMessage(webpage);
                            msg.title = "標題";
                            msg.description = "描述信息";
                            Bitmap thumb = BitmapFactory.decodeResource(getResources(), R.drawable.send_music_thumb);
                            msg.thumbData = Util.bmpToByteArray(thumb, true);
                            
                            SendMessageToWX.Req req = new SendMessageToWX.Req();
                            req.transaction = buildTransaction("webpage");
                            req.message = msg;
                            req.scene = isTimelineCb.isChecked() ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession;
                            api.sendReq(req);
                            

 

等等。

代碼下載

github: https://github.com/DickyQie/android-third-party/tree/weixin-share


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM