当前位置: 首页 > Web前端 > HTML

DSBridge

时间:2023-04-02 18:49:53 HTML

原生Js交互文章链接:https://mp.weixin.qq.com/s/Iqd0dKM-ZW4UwkIgSTnvYg在之前的文章《Android记一条富文本加载之路》中,介绍了关于android加载富文本的text的方法,里面提到加载html文件,app在后台获取json格式的数据,传递给html模板文件进行渲染交互。下面html代码设置函数fx,y=xysin1<msqrt>x2+y2,   x2+ymn>20,0,  &;#xA0;          mo>           x2+y2=0,   /mtd>"class="wiris-tex">则f(x,y)"class="wiris-tex">在点(0,0)"class="wiris-tex">处的代码在部分手机上会显示异常,类似这个,这里使用腾讯的X5WebView,加上适配屏幕大小后的显示效果需要同时和js交互,这里选择DSBridge支持X5内核gradle关联实现'com.github.wendux:DSBridge-Android:x5-3.0-SNAPSHOT'usinghtml文件需要参考本库提供的js文件的相对路径dsbridge.同时添加适配手机屏幕尺寸,准备一个简单的html文件宽度,初始比例=1,最大比例=1"/>

/body>div块用于显示通过webView.callHandler()方法传递给js的html代码的原始值。第一个参数是约定注册的名称,与js接受位置一致;第二个参数是要传的值,传到这里就变成传给前端的json字符串;第三个参数是接受js返回的回调,可用于js接受成功后通知native。HtmlData数据=newHtmlData();data.html=txt;webView.callHandler("nativeToJs",newObject[]{newGson().toJson(data)},newOnReturnValue(){@OverridepublicvoidonValue(Stringo){}});js接受传值,直接通过dsBridge.register()方法接受第一个参数,就是上面的注册名,和原来一致;第二个是js方法,参数数据为传值,这里通过JSON.parse()格式化,方法的return返回值传给原样,对应上面第三个参数。js通过dsBridge.call()方法向原生js传递值,简单的模拟点击事件传递。第一个参数为合约注册的名称,与原生接受方法名称保持一致;第二个参数是要传递的值;第三个参数是接受本机返回的回调。functiontest(){dsBridge.call("jsToNative","test",function(res){console.log(res)});}原生接受,通过JavascriptInterface注解,方法名与注册名保持一致第一个参数为传递的值;第二个参数可以回调信息给js;webView.addJavascriptObject(newJsApi(),null);publicclassJsApi{@JavascriptInterfacepublicvoidjsToNative(Objectmsg,CompletionHandlerhandler){handler.complete(msg+"Callbacktojs");}}这里简单使用原生js交互。更多内容请参考github文档https://github.com/wendux/DSBridge-Android欢迎关注我的个人博客:https://www.manjiexiang.cn/更多精彩,欢迎关注微信公众号:不如认识你一起学习进步。欢迎上车。如果您有任何问题,请随时与我们联系,共同解决!!!