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);
}
}
圖片和視訊解決,文字和網頁應該很簡答。。可以參考官方文件解決解決