来来来,说说你的创作灵感!这就跟吃饭睡觉一样,饿了就找吃的,渴了就倒水张口灌。
最近一个多月实在是忙的没再更新日志,好多粉丝私信说之前的创作于他们而言非常有用!受益菲浅,这里非常感谢粉丝们的抬爱及认可。本来写这些东东也没有什么私心,只是觉的写写,将来有人看到,在工作中会提供一份帮助或思路即可。
好了,来说说本文要总结的技术方案及场景。
使用uniapp开发出来APP,在开发过程中加载到了自己网站上的一些页面,这些页面呢是公共核心功能,不必要再在app上实现一遍,而是直接跨站访问WEB页面的URL,把初化参数传给URL,后续的点击事件等通过jsbridge来发送到APP端实现相应的功能及业务。如:WEB上录入数据完成后点击WEB上的的完成事件按钮后,APP直接回退到上一级页面!这个场景是不是很好玩!WEB上某个事件透传到APP,在APP上进行更友好的弹窗或者提示是不是也很新鲜?下来来贴一下实现代码:
一、web端透传数据到uniapp端
先来看看官方的文档说明:
web-view的文档https://uniapp.dcloud.net.cn/component/web-view.html自行从头到尾阅读一下整体文档及说明,这里直接进入正题整理相关的方案:
uni.webview.js
最新版地址:hybrid/html/uni.webview.1.5.5.js · alpha · DCloud / hello uni-app x · GitCode
1、在你的web项目中的public目录创建一个名为uni.webview.js 的文件,当然你自己可台随便给名。
2、点击上面连接的JS文件,拷贝文件里面的所有的代码粘贴到上步创建的文件中。
3、按照下图在你的index.html引入本地新加的uni.webview.js文件。当然你可以忽略1、2步,直接在src处引入'https://gitcode.net/dcloud/hello-uni-app-x/-/blob/alpha/hybrid/html/uni.webview.1.5.5.js'连接,只是没有本地加载来的效率高快而已。同时注意<script></script>脚本必须位于body之下!!!
引入后,在你的web页面相关需要通讯的地方添加以下代码:
至此WEB上相关的业务已经完成部署,来看看UNIAPP上的代码实现:
在你加载web页面的业务处,给webview添加message事件!
uniapp实现业务逻辑:
注意真机运行有效!
二、uniapp透传数据到web端
1、app端:参数对象必须json序列化!app2web这个就是你注册的方法名,可以根据你自己的习惯去命名即可。
2、web端:因为我web端没有具体的业务要求,所以没有具体的业务实现。