从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);
}
}
图片和视频解决,文字和网页应该很简答。。可以参考官方文档解决解决