android webview 调用微信分享
- 作者:
- 发表时间:2018-12-26 09:27
- 来源:未知
以下小编整理了通过android webview开发调用微信开放平台的分享功能
1、申请微信开放平台的账号 并且获得appid
2、通过android集成webview并loadurl相关网址
3、在前端界面中 我们可以定义相关的事件通过scheme来调用android中的方法
例如
如有什么疑问和需要可以咨询小编哦~~
1、申请微信开放平台的账号 并且获得appid
2、通过android集成webview并loadurl相关网址
3、在前端界面中 我们可以定义相关的事件通过scheme来调用android中的方法
例如
function callAndroid(arg1,arg2){
document.location = "js://webview?arg1="+arg1+"&arg2="+arg2;
}
4、android端 我们再setwebviewclient中重写shouldOverrideUrlLoading
相关代码如下
6、这样我们就能通过android嵌入网页 再通过网页调原生的微信分享 方便快捷!4、android端 我们再setwebviewclient中重写shouldOverrideUrlLoading
相关代码如下
@Override public boolean shouldOverrideUrlLoading(WebView view, String url) { // TODO Auto-generated method stub //返回值是true的时候控制去WebView打开,为false调用系统浏览器或第三方浏览器 Uri uri = Uri.parse(url); // 如果url的协议 = 预先约定的 js 协议 // 就解析往下解析参数 if ( uri.getScheme().equals("js")) { // 如果 authority = 预先约定协议里的 webview,即代表都符合约定的协议 // 所以拦截url,下面JS开始调用Android需要的方法 if (uri.getAuthority().equals("webview")) { // 步骤3: // 执行JS所需要调用的逻辑 System.out.println("js调用了Android的方法"); // 可以在协议上带有参数并传递到Android上 HashMap<String, String> params = new HashMap<>(); Set<String> collection = uri.getQueryParameterNames(); String title = uri.getQueryParameter("arg1"); String imgUrl = uri.getQueryParameter("arg2"); share(title,imgUrl); } return true; } return super.shouldOverrideUrlLoading(view, url); } 5、share方法如下 以下是分享图片到朋友圈
private void share(String title,String imgUrl) { final String img = imgUrl; //分享图片 Bitmap thumb = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher); WXImageObject imgObj = new WXImageObject(thumb); final WXMediaMessage msg = new WXMediaMessage(); msg.mediaObject = imgObj; msg.title = "标题"; msg.description = "哎呦,不错哦"; final Bitmap[] thumbBmp = {Bitmap.createScaledBitmap(thumb, 100, 100, true)}; thumb.recycle(); new Thread(new Runnable() { @Override public void run() { try { InputStream imageStream = getImageStream(img); Bitmap bitmap = BitmapFactory.decodeStream(imageStream); msg.mediaObject = new WXImageObject(bitmap); thumbBmp[0] = Bitmap.createScaledBitmap(bitmap, 100, 100, true); bitmap.recycle(); } catch (Exception e) { e.printStackTrace(); } msg.thumbData = bmpToByteArray(thumbBmp[0], true); SendMessageToWX.Req req = new SendMessageToWX.Req(); req.transaction = buildTransaction("img"); req.message = msg; req.scene = SendMessageToWX.Req.WXSceneTimeline; iwxapi.sendReq(req); } }).start(); finish(); }
如有什么疑问和需要可以咨询小编哦~~
上一篇:微信小程序开发跨界配置https教程 下一篇:小程序地图开发应用案例-货柜地图