微信分享官方第三方接入(图片及文字)
2016-05-29 14:41
936 查看
微信分享官方第三方接入:
第一步、官方接入文档必须要读的。
https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=1417751808&token=&lang=zh_CN
第二步、导入jar包
第三步、权限支持。在AndroidManifest.xml中
第四步、注册到微信。
sendResp是微信向第三方app请求数据,第三方app回应数据之后会切回到微信界面。
本次我们使用sendReq是第三方app主动发送消息给微信,发送完成之后会切回到第三方app界面。
举个栗子:
基本上。完成上面的操作就可以分享文字到微信了。
第五步、分享图片到微信。
普通图片不多说,说下截图分享。直接上代码:
注意一:
如果scene填WXSceneTimeline(微信4.2以上支持,如果需要检查微信版本支持API的情况,
可调用IWXAPI的getWXAppSupportAPI方法,0x21020001及以上支持发送朋友圈),那么消息会发送至朋友圈。
scene默认值为WXSceneSession。
注意二、如果分享的时候出现闪一下没有任何反应。
去微信官网,注册appID,用正确的APPID,绑定成功再试试。
第一步、官方接入文档必须要读的。
https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=1417751808&token=&lang=zh_CN
第二步、导入jar包
第三步、权限支持。在AndroidManifest.xml中
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
第四步、注册到微信。
// IWXAPI 是第三方app和微信通信的openapi接口 private IWXAPI api;wxapi = WXAPIFactory.createWXAPI(getApplicationContext(), Constants.APP_ID);
// 将该app注册到微信 <span style="white-space:pre"> </span> api.registerApp(Constants.APP_ID);
若不加这句,则可能需要用签名包才能注册第五步、分享一条文本消息。
sendResp是微信向第三方app请求数据,第三方app回应数据之后会切回到微信界面。
本次我们使用sendReq是第三方app主动发送消息给微信,发送完成之后会切回到第三方app界面。
举个栗子:
Override public void onClick(DialogInterface dialog, int which) { String text = editor.getText().toString(); if (text == null || text.length() == 0) { return; } // 初始化一个WXTextObject对象 WXTextObject textObj = new WXTextObject(); textObj.text = text; // 用WXTextObject对象初始化一个WXMediaMessage对象 WXMediaMessage msg = new WXMediaMessage(); msg.mediaObject = textObj; // 发送文本类型的消息时,title字段不起作用 // msg.title = "Will be ignored"; msg.description = text; // 构造一个Req SendMessageToWX.Req req = new SendMessageToWX.Req(); req.transaction = buildTransaction("text"); // transaction字段用于唯一标识一个请求 req.message = msg; req.scene = isTimelineCb.isChecked() ? SendMessageToWX.Req.WXSceneTimeline: SendMessageToWX.Req.WXSceneSession; // 调用api接口发送数据到微信 api.sendReq(req); finish(); } }, null); } });
基本上。完成上面的操作就可以分享文字到微信了。
第五步、分享图片到微信。
普通图片不多说,说下截图分享。直接上代码:
/** * 分享一个图片 * * @author YOLANDA * @param wxApi * @param shareBitmap * 要分享的图片 * @param isToFriend * 是否是分享到朋友圈 */ public static void shareImg(IWXAPI wxApi, Bitmap shareBitmap, boolean isToFriend, String title, String content) { WXImageObject imgObj = new WXImageObject(shareBitmap); WXMediaMessage msg = new WXMediaMessage(); if (TextUtils.isEmpty(title)) { title = content; } else { if (TextUtils.isEmpty(title.trim())) { title = content; } } msg.title = title; msg.description = content; msg.mediaObject = imgObj; Bitmap thumbBmp = Bitmap.createScaledBitmap(shareBitmap, MeasureSpec .makeMeasureSpec(shareBitmap.getWidth() / 10, MeasureSpec.UNSPECIFIED), MeasureSpec.makeMeasureSpec( shareBitmap.getHeight() / 10, MeasureSpec.UNSPECIFIED), true); msg.thumbData = bmpToByteArray(thumbBmp); // 设置缩略图 SendMessageToWX.Req req = new SendMessageToWX.Req(); req.transaction = buildTransaction("img"); req.message = msg; req.scene = isToFriend ? SendMessageToWX.Req.WXSceneTimeline : SendMessageToWX.Req.WXSceneSession; wxApi.sendReq(req); }
/** * 得到Bitmap的byte * * @author YOLANDA * @param bmp * @param needRecycle * @return */ private static byte[] bmpToByteArray(Bitmap bmp) { ByteArrayOutputStream output = new ByteArrayOutputStream(); bmp.compress(CompressFormat.PNG, 100, output); byte[] result = output.toByteArray(); try { output.close(); } catch (Exception e) { e.printStackTrace(); } return result; }
/** * 构建一个唯一标志 * * @author YOLANDA * @param type * @return */ private static String buildTransaction(String type) { return (type == null) ? String.valueOf(System.currentTimeMillis()) : (type + System.currentTimeMillis()); }
注意一:
SendMessageToWX.Req.WXSceneTimeline
SendMessageToWX.Req.WXSceneSessionSendMessageToWX.Req的scene成员,如果scene填WXSceneSession,那么消息会发送至微信的会话内。
如果scene填WXSceneTimeline(微信4.2以上支持,如果需要检查微信版本支持API的情况,
可调用IWXAPI的getWXAppSupportAPI方法,0x21020001及以上支持发送朋友圈),那么消息会发送至朋友圈。
scene默认值为WXSceneSession。
注意二、如果分享的时候出现闪一下没有任何反应。
去微信官网,注册appID,用正确的APPID,绑定成功再试试。
相关文章推荐
- 微信开发之消息接收与回复--weixin-java-tools
- 老年人微信教程手绘版|微信入门教程1
- Web应用多账号系统设计及微信扫码登录实现
- 微信网页版朋友圈在哪?怎么找不到
- 微信分享的问题
- iOS-微信跳转问题(从无效的账号发起跳转)
- Discuz!手机版微信分享不显示缩略图的解决方案
- 河南网中网微信三级分销系统软件的优势是什么
- 公众号微信支付开发
- winform写的搜索文件目录小程序
- ShareSDK集成微信、QQ、微博分享
- 模仿微信聊天软键盘
- Android调用系统分享直接抵达微信
- 自定义之类微信底部渐变栏
- 微信网页授权流程总结
- 第一次独立编写小程序——写入数据库
- java微信开发引入jssdk一直报invalid url domain错的其他原因
- 微信测试号的开发——网页授权
- 微信中无法接收post方式传参的form表单中的数据的问题
- 一个微信运营牛人的三句话