1. 程式人生 > >android 分享到微信朋友圈或微信好友

android 分享到微信朋友圈或微信好友

一、首先建立一個數字簽名(keystore檔案)這裡不再講述keystore的建立過程!
二、用keystore給app簽名,注意最後如下圖所示


圖中的md5就是 申請apkid時所需的 簽名,這裡需要注意MD5需要將其中的“:”去掉並將其中的大寫字母改為小寫

三、申請微信apkid。具體可以參考微信.開放平臺的詳細介紹https://open.weixin.qq.com/

四、申請apkid估計的一天半左右的時間,申請完apkid之後,到微信開放平臺下載sdk包,在自己的工程中建立libs資料夾並將下載好的微信sdk包拷貝到libs中至此微信分享已經完成第一步操作

五、在你的包名相應目錄下新建一個wxapi目錄,並在該wxapi目錄下新增一個WXEntryActivity類,該類繼承自Activity

包名就是圖中package

新增完WXEntryActivity類之後大概就是下圖這個樣子

WXEntryActivity中的程式碼請參考 微信開放平臺所提供的demo,微信分享已經完成一大半

最後就是分享了,你要在你的app中點選某個按鈕或者圖表分享內容:首先在你的activity的入口註冊微信程式碼如下

private Bundle bundle;
    private IWXAPI wxApi;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_zc_info);
        // 微信分享例項化
        wxApi = WXAPIFactory.createWXAPI(this, Contant.WX_APP_ID);
        wxApi.registerApp(Contant.WX_APP_ID);
        bundle = getIntent().getExtras();
            }

    @Override
    public void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        bundle = intent.getExtras();
    }

接下來就是寫微信分享了程式碼如下

/**
     * @param text
     *            要分享的文字
     */
    private void shareText2Circle(String content, String title, int tiger) {
        System.out.println("shareText2Circle========== :" + content);
        // System.out.println("getSign============= :"+getSign());
        WXTextObject textObj = new WXTextObject();
        textObj.text = content;

        // 用WXTextObject物件初始化一個WXMediaMessage物件
        WXMediaMessage msg = new WXMediaMessage();
        msg.mediaObject = textObj;
        // 傳送文字型別的訊息時,title欄位不起作用
        msg.title = title;
        msg.description = content;

        // 構造一個Req
        SendMessageToWX.Req req = new SendMessageToWX.Req();
        req.transaction = buildTransaction("text"); // transaction欄位用於唯一標識一個請求
        req.message = msg;
        // 這裡替換一張自己工程裡的圖片資源
        Bitmap thumb = BitmapFactory.decodeResource(getResources(),
                R.drawable.ic_launcher);
        msg.setThumbImage(thumb);
        System.out.println("shareText2Circle tiger:" + tiger);
        if (tiger == 1) {
            req.scene = SendMessageToWX.Req.WXSceneSession;// 表示傳送場景為朋友圈,這個代表分享到朋友圈
        } else {
            req.scene = SendMessageToWX.Req.WXSceneTimeline;// 表示傳送場景為好友對話,這個代表分享給好友
            // req.scene = SendMessageToWX.Req.WXSceneFavorite;
        }
        wxApi.sendReq(req);

        // 表示傳送場景為收藏,這個代表新增到微信收藏
        // 呼叫api介面傳送資料到微信
        finish();
    }

這裡只是簡單的分享文字到微信,其他分享類似,大家可以參照微信公眾平臺的demo

本人第一篇微博,主要就是講一下自己在開發時遇到的問題,就簽名搞錯了花費了一天多時間,大家記得簽名就是在打包app時 最後顯示的MD5(去掉“:”,將大寫字母變成小寫)

奔部落格 只代表個人開發見解