Android接入微信分享视频和图片

时间:2022-01-13 15:49:42

从14年10未毕业开始工作到现在,忍不住想写点东西,就从最近的用的东西写起吧。
首先是分享-微信分享
微信分享 首先要去微信的开发者平台去申请账号,这边注意申请的时候要填写签名的那个Md5值,然后获取APPID

下面直接从代码说起:
第一步:接入 sdk,在开发者平台的资源中心有,放入libs下面,
在gradle里面
compile files(‘libs/libammsdk.jar’)就好了
第二步:在包里面新建一个wxapi的包,再在包里面新建WXEntryActivity这个文件
如下图
Android接入微信分享视频和图片
下面是这个类的代码
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);
    }

}

图片和视频解决,文字和网页应该很简答。。可以参考官方文档解决解决