室内设计网站大全网站,淘宝美工做倒计时图片网站,网站设计理念,搜索引擎怎么收录网站前言
最近在研究harmony操作系统下的交互#xff0c;因此写一篇文章记录一下。
解决的问题
本篇文章主要是来写解决如果兼容android或者ios的交互#xff0c;这样子避免h5页面的二次开发#xff0c;节省资源。
交互的种类
交互对于harmony来说其实只有一种#xff0c;…前言
最近在研究harmony操作系统下的交互因此写一篇文章记录一下。
解决的问题
本篇文章主要是来写解决如果兼容android或者ios的交互这样子避免h5页面的二次开发节省资源。
交互的种类
交互对于harmony来说其实只有一种只有注册的形式使用WebviewController的registerJavaScriptProxy来实现如果是从头开始开发harmony 是没有任何问题的直接使用这个来写就行。 但是如果你的项目中有大量的h5页面使用了很多的交互这时怎么能够兼容呢我们想到了一些办法。
模拟android
我们在WebviewController的setCustomUserAgent方法中把安卓完整的ua和harmony的ua拼接在一起这样子前端h5的交互就以为是安卓的请求,就会根据android的形式来处理交互ios同理。 代码如下: this.webviewController.setCustomUserAgent(F-OFST moblie_android this.androidUa this.webviewController.getUserAgent())this.webviewController.registerJavaScriptProxy(this.myUtilsRegisterBridge, Myutils,[return_btn, returnBack, returnLogin]);
但是android还有一种实现bc交互的方法就是利用浏览器的onPrompt机制这种机制就是我们利用event的message和value来制定前端给我们的格式比如key,callbakc(回调函数),params(参数),利用这些定义好的值在客户端接收到后进行解析如果是正常的返回就用 result.handlePromptConfirm(json);或者result.handleConfirm();来实现, 如果是callback我们可以使用this.webviewController的runJavaScript来实现或者使用this.webviewController的loadurl来实现,代码如下: this.mWebviewController.loadUrl(javascript: webViewJSBean.callBack ( tmpStr ))
总结
到此就结束了这里主要的重点是 一、解决如何节省资源的情况下实现harmony的交互 二、利用onPrompt实现交互我们称为拦截 三、this.mWebviewController.loadUrl实现回调函数这种在文档里是查不到的在此记录为后面的人铺路