Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >和安卓和ios的webview的数据交互

和安卓和ios的webview的数据交互

作者头像
河湾欢儿
发布于 2019-07-24 07:27:34
发布于 2019-07-24 07:27:34
1.3K00
代码可运行
举报
运行总次数:0
代码可运行

第一步是必写的

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function setupWebViewJavascriptBridge(callback) {
                if (window.WebViewJavascriptBridge) {
                    return callback(WebViewJavascriptBridge);
                }
                if (window.WVJBCallbacks) {
                    return window.WVJBCallbacks.push(callback);
                }
                window.WVJBCallbacks = [callback];
                var WVJBIframe = document.createElement('iframe');
                WVJBIframe.style.display = 'none';
                WVJBIframe.src = 'wvjbscheme://__BRIDGE_LOADED__';
                document.documentElement.appendChild(WVJBIframe);
                setTimeout(function() {
                    document.documentElement.removeChild(WVJBIframe)
                }, 0)
            }

第二步

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
setupWebViewJavascriptBridge(function(bridge) {
    //和ios和安卓的交互放在这里
}

第三步 写交互

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
setupWebViewJavascriptBridge(function(bridge) {
                var uniqueId = 1

                function log(message, data) {
                    var log = document.getElementById('log')
                    var el = document.createElement('div')
                    el.className = 'logLine'
                    el.innerHTML = uniqueId++ + '. ' + message + ':<br/>' + JSON.stringify(data)
                    if (log.children.length) {
                        log.insertBefore(el, log.children[0])
                    } else {
                        log.appendChild(el)
                    }
                }
                 // registerHandler是注册,ios和安卓那边可以调取你这边的数据
                bridge.registerHandler('testJavascriptHandler', function(data, responseCallback) {
                    log('Java called testJavascriptHandler with', data)
                    var responseData = {
                        'Javascript Says': 'Right back atcha!'
                    }
                    log('JS responding with', responseData)
                    responseCallback(responseData)
                })
                bridge.callHandler('getAuthToken', {//getAuthToken 是调取安卓那边注册事件  需要统一
                    'foo': 'bar'
                }, function(response){
                    $.ajax({
                        type: "GET",
                        headers: {
                            'Authorization': 'Bearer ' +response,//response 是安卓和ios那边返回的token
                        },
                        url: "url",
                        async: true,
                        success: function(res) {
                            console.log(res)
                        },
                        error(err) {
                            console.log(err)
                        }
                    })
                })
            })

附加一个简单的报错插件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<script src='https://wechatfe.github.io/vconsole/lib/vconsole.min.js?v=3.0.0.0'></script><!-- 也可以使用npm下载--!>
<script>
window.vConsole = new window.VConsole();
window.onerror = function(errorMessage, scriptURI, lineNumber,columnNumber,errorObj) {
   document.write("错误信息:" , errorMessage,"出错文件:" , scriptURI,"出错行号:" , lineNumber,"错误详情:" , errorObj)
}
throw new Error("出错了!");
    
</script>
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019.07.22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
js和native交互方法浅析
一、背景 最近接触公司项目,需要和原生app做交互,由此业务需求,开始了学习探索之路。 二、解决方案之WebViewJavascriptBridge  想要和app交互,必须在app上先把bridge进行实例化,这是先决条件。 oc解决方案 步骤 1、引入文件 #import "WebViewJavascriptBridge.h" 2、实例化WebViewJavascriptBridge  self.bridge = [WebViewJavascriptBridge bridgeForWebView:web
吴裕超
2018/03/01
3.2K0
WebViewJavaScriptBridge深入剖析
前一篇文章中,我们大致的讲述了一下JavaScriptCore这个库在iOS开发中的应用。在文中最后的阶段,我们提到了WebViewJavaScriptBridge这个库。提到这个库,可能有一些人就要说了,现在都什么时代了,谁还会用这个库啊?全是坑!不错,早在三年前,这个库有过一段辉煌的时光,在苹果除了WKWebView之后,渐渐的使用这个库的人越来越少,尽管这个库也是支持了WKWebView的。 但是一个事物的存在就有他的价值,就算使用也不是那么频繁了,尽管他有很多的坑。但是对于一个开发者来说,我们应该取其精华去其糟粕,现如今出的很多的交互的bridge依旧是有部分交互逻辑沿用了WebViewJavaScriptBridge的思想。 这里就不得不提味精大神的一片文章,这篇文章里面深入浅出的谈了谈现如今Hybrid开发时常用的一些桥方法。有兴趣的可以去关注一下。废话不多说,那么我们今天就从源码开始解析这个库的使用以及原理。
iOSSir
2019/06/14
6860
iOS下JS与OC互相调用(六)--WKWebView + WebViewJavascriptBridge
上一篇文章介绍了UIWebView 如何通过WebViewJavascriptBridge 来实现JS 与OC 的互相调用,这一篇来介绍一下WKWebView 又是如何通过WebViewJavascriptBridge 来实现JS 与OC 的互相调用的。WKWebView 下使用WebViewJavascriptBridge与UIWebView 大同小异。主要是示例化的类不一样,一些与webView 相关的API调用不一样罢了。
Haley_Wong
2018/08/22
5K0
iOS下JS与OC互相调用(六)--WKWebView + WebViewJavascriptBridge
WebViewJavascriptBridge
Web 页面中的 JS 与 iOS Native 如何交互?JS 和 iOS Native 就好比两块没有交集的大陆,如果想要使它们相互通信就必须要建立一座“桥梁”。
全栈程序员站长
2022/11/19
1.3K0
WebViewJavascriptBridge
用WebViewJavascriptBridge进行JS和app进行交互
做项目的时候有一个业务是需要前端web给安卓发送指令,进行拍照个读取身份证的操作,这个时候是需要用户进入页面的时候直接进行的操作,那么这个时候我需要做的是告诉安卓什么时候调取什么样子的硬件,那么我们难题就是js和安卓怎么进行通信,有这样的需求也是很少见的,但是既然存在这样的需求还是需要进行解决的,那么我参考的是这个地址的方案: JsBridge
何处锦绣不灰堆
2020/05/28
3.4K0
JSBridge原理解析—以WebviewJavascriptBridge实现方式为例
JSBridge 是一种 webview 侧和 native 侧进行通信的手段,webview 可以通过 jsb 调用 native 的能力,native 也可以通过 jsb 在 webview 上执行一些逻辑。
zz_jesse
2021/07/12
1.9K0
JSBridge原理解析—以WebviewJavascriptBridge实现方式为例
原 WebViewJavascriptBr
作者:汪娇娇 时间:2017年8月3日 H5和客户端(IOS、安卓)想要交互怎么办(手动头疼)? 答案是肯定的,必要的时候还是要借助一定的工具啦。 我主要研究的是JavascriptBridge,所以今天要说的就这种方法。 而且基于我自己是做前端的,所以单方面的只说JS部分,客户端可以参考: https://github.com/wangjiaojiao77/WebViewJavascriptBridge(IOS)和 https://github.com/wangjiaojiao77/JsBridge(安卓
jojo
2018/05/03
7880
JSBridge 框架解析
非常需要注意的是关于安卓端 在assets文件夹里注入的js桥梁文件 一定不要有注释 或者是压缩成一行代码才能注入成功
前端小tips
2021/12/08
7820
JSBridge 框架解析
WebViewJavascriptBridge优化开发背景处理办法
WebViewJavascriptBridge作为JS和原生OC的交互,通常都是在WebView中用self.bridge注册方法来进行调用,但这样对于WebView来说比较脓肿,全部逻辑处理都放在WebView下面实现,并且入参出参都是要用字符串来实现影响开发效率,后来考虑用runtime方法,让JS调用的方法都放在类里面实现
freesan44
2018/10/11
6490
js与ios桥接使用WebViewJavascriptBridge简单理解
https://github.com/marcuswestin/WebViewJavascriptBridge function setupWebViewJavascriptBridge(callback) { if (window.WebViewJavascriptBridge) { return callback(WebViewJavascriptBridge); } if (window.WVJBCallbacks) { return window.WVJBCallbacks.push
蓓蕾心晴
2018/04/12
1.4K0
iOS_与H5界面JSBridge交互Demo
我用了一个library(GCWebviewJSBridge-iOS), github网址:github.com/wheying/GCWebviewJSBridge-iOS
mikimo
2022/07/20
8210
WebViewJavascriptBridge源码探究--看OC和JS交互过程
      今天把实现OC代码和JS代码交互的第三方库WebViewJavascriptBridge源码看了下,oc调用js方法我们是知道的,系统提供了stringByEvaluatingJavaScriptFromString函数
tandaxia
2018/09/27
3.4K0
WebViewJavascriptBridge源码探究--看OC和JS交互过程
[源码分析]iOS WebViewJavascriptBridge使用及原理
在开发中涉及到网页与iOS原生交互,于是就想到了WebViewJavascriptBridge 这个开源库。经过最近几天的研究和了解算是熟悉了它的使用和大致的处理过程。以此记录作为自己学习总结习惯的开始,也便于不熟悉它的人能快速使用它。 内容包括三个部分。
Light413
2020/04/08
1.8K0
[源码分析]iOS WebViewJavascriptBridge使用及原理
一文搞懂jsBridge的运行机制
我司的APP是一个典型的混合开发APP,内嵌的都是前端页面,前端页面要做到和原生的效果相似,就避免不了调用一些原生的方法,jsBridge就是js和原生通信的桥梁,本文不讲概念性的东西,而是通过分析一下我司项目中的jsBridge源码,来从前端角度大概了解一下它是怎么实现的。
街角小林
2022/03/21
1.2K0
Native与H5交互-WebViewJavascriptBridge
PS:native跟H5交互,需要确定一些协议,在native调用H5的时候,native会通过WebViewJavascriptBridge组件 来创建好bridge,此时,你会发现H5页面中存在一个iframe。此时你就可以使用bridge来跟native交互。
White feathe
2021/12/08
6060
JsBridge实现JavaScript和Java的互相调用
前端网页JavaScript(下文简称Js)和Java互相调用在手机应用中越来越常见,JsBridge是最常用的解决方案。 1. Js调用Java,Java调用Js 在Android开发中,能实现Js调用Java,有4种方法: 1.JavascriptInterface 2.WebViewClient.shouldOverrideUrlLoading() 3.WebChromeClient.onConsoleMessage() 4.WebChromeClient.onJsPrompt() 1.1 Javas
QQ音乐技术团队
2018/01/30
2.5K0
JsBridge实现JavaScript和Java的互相调用
android-agent-web中js-bridge案例
然后是com/just/agentweb/sample/activity/CommonActivity.java:140代码:
阿超
2024/04/15
1780
android-agent-web中js-bridge案例
UIWebView与JS的交互
要实现这样一个需求:按照本地的CSS文件展示一串网络获取的带HTML格式的只有body部分的文本,需要自己拼写完整的HTML。除此之外,还需要禁用获取的HTML文本中自带的 < img > 标签自动加载,并把下载图片的操作放在native端来处理,并通过JS将图片在Cache中的地址返回给UIWebview。
用户2491699
2018/08/02
3.9K0
UIWebView与JS的交互
Objective-c与js交互专题
在写 JavaScript 的时候,可以使用一个叫做 window 的对象,像是我们想要从现在的网页跳到另外一个网页的时候,就会去修改 window.kk 的位置;在我们的 Objective-C 程序码中,如果我们可以取得指定的 WebView 对象,也就可以拿到这个出现在 JavaScript 中的 window 对象,也就是 [webView windowScriptObject]。
江中散人_Jun
2022/03/08
1.8K0
iOS下JS与OC互相调用(五)--UIWebView + WebViewJavascriptBridge
WebViewJavascriptBridge是一个有点年代的JS与OC交互的库,使用该库的著名应用还挺多的,目前这个库有7000+star。我去翻看了它的第一版本已经是4年前了,在版本V4.1.4以及之前,该库只有一个类和一个js 的txt文件,所以旧版本的WebViewJavascriptBridge 是非常容易理解的。而最新版的WebViewJavascriptBridge因为也要兼容WKWebView,所以里面也加入了两个新的类,一开始看的时候,会被它里面复杂的逻辑吓到,其实仔细阅读后,它还是非常简单的。
Haley_Wong
2018/08/22
3.7K0
iOS下JS与OC互相调用(五)--UIWebView + WebViewJavascriptBridge
相关推荐
js和native交互方法浅析
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验