1. 程式人生 > >Android接入微信分享視訊和圖片

Android接入微信分享視訊和圖片

從14年10未畢業開始工作到現在,忍不住想寫點東西,就從最近的用的東西寫起吧。
首先是分享-微信分享
微信分享 首先要去微信的開發者平臺去申請賬號,這邊注意申請的時候要填寫簽名的那個Md5值,然後獲取APPID

下面直接從程式碼說起:
第一步:接入 sdk,在開發者平臺的資源中心有,放入libs下面,
在gradle裡面
compile files(‘libs/libammsdk.jar’)就好了
第二步:在包裡面新建一個wxapi的包,再在包裡面新建WXEntryActivity這個檔案
如下圖
這裡寫圖片描述
下面是這個類的程式碼
public class WXEntryActivity extends Activity implements IWXAPIEventHandler {

private IWXAPI api;
private static final String TAG = "WXEntryActivity";
public static final String AppID="XXXX";

@Override
protected void onCreate(Bundle savedInstanceState) {
    api = WXAPIFactory.createWXAPI(this, AppID, false);
    api.handleIntent(getIntent(), this);
    super.onCreate(savedInstanceState);
}

@Override
public void onReq(BaseReq arg0) {
}

@Override
public void onResp(BaseResp resp) {
    switch (resp.errCode) {
        case BaseResp.ErrCode.ERR_OK:
            //分享成功

            // ToastUtils.toastShort("分享成功");

// if (null != NativeShare.shareSuccessCallback) {
// NativeShare.shareSuccessCallback.onShareSuccess(NativeShare.currentPlatformName);
// NativeShare.setShareSuccessCallback(null);
// }
break;
case BaseResp.ErrCode.ERR_USER_CANCEL:
// ToastUtils.toastShort(“分享取消”);
// NativeShare.setShareSuccessCallback(null);
//分享取消
break;
case BaseResp.ErrCode.ERR_AUTH_DENIED:
//分享拒絕
// ToastUtils.toastShort(“分享失敗”);
// NativeShare.setShareSuccessCallback(null);
break;
default:
break;
}
finish();
}
}

然後下面是到你的程式碼裡面去呼叫
private IWXAPI wxApi;
在onCreate()裡面先 註冊
wxApi = WXAPIFactory.createWXAPI(getActivity(), WXEntryActivity.AppID);
wxApi.registerApp(WXEntryActivity.AppID);

然後具體去呼叫首先是圖片:
NativeShare.weChatShareImage(url, wxApi, 0);
//微信分享圖片
NatiVeShare裡面的,傳入圖片路徑,還有事分享到朋友圈還是朋友標誌
public static void weChatShareImage(String filepath, IWXAPI wxApi, int flag) {
WXImageObject imgObj = new WXImageObject();
imgObj.setImagePath(filepath);
WXMediaMessage msg = new WXMediaMessage();
msg.mediaObject = imgObj;
Bitmap bmp = BitmapFactory.decodeFile(filepath);
Bitmap thumbBmp = Bitmap.createScaledBitmap(bmp, 120, 120, true);
bmp.recycle();
msg.thumbData = bmpToByteArray(thumbBmp, true);
msg.title = “標題”;
msg.description = “內容”;
SendMessageToWX.Req req = new SendMessageToWX.Req();
req.transaction = “img” + String.valueOf(System.currentTimeMillis());
req.message = msg;
req.scene = flag == 0 ? SendMessageToWX.Req.WXSceneSession : SendMessageToWX.Req.WXSceneTimeline;
wxApi.sendReq(req);
}

下面是分享視訊到微信,微信裡面分享視訊實質上是分享的視訊連結,我這邊是先把視訊上傳到七牛雲,然後自己拼接視訊連結分享到微信的

//微信分享視訊
public static void weChatShareVideo(IWXAPI wxApi, String uri, int flag) {
    if (!isWXAppInstall(wxApi)) {
        Toast.makeText(MyApplication.getContext(), R.string.wechat_no_install, Toast.LENGTH_LONG).show();
    } else {
        WXVideoObject video = new WXVideoObject();
        video.videoUrl = uri;
        WXMediaMessage msg = new WXMediaMessage(video);
        msg.title = "這個是分享的視訊的標題";
        msg.description = "這比是分享視訊的內容描述";
        //這裡替換一張自己工程裡的圖片資源

        Bitmap bitmap = ThumbnailUtils.createVideoThumbnail(uri, MediaStore.Video.Thumbnails.MINI_KIND);
        bitmap = ThumbnailUtils.extractThumbnail(bitmap, 210, 210);
        msg.setThumbImage(bitmap);

        SendMessageToWX.Req req = new SendMessageToWX.Req();
        req.transaction = String.valueOf("video");
        req.message = msg;
        req.scene = flag == 0 ? SendMessageToWX.Req.WXSceneSession : SendMessageToWX.Req.WXSceneTimeline;
        wxApi.sendReq(req);
    }

}

圖片和視訊解決,文字和網頁應該很簡答。。可以參考官方文件解決解決