栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > Vue.js

uni-app 与 Vue H5 项目通讯

Vue.js 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

uni-app 与 Vue H5 项目通讯

什么是WebView

> WebView是术语,是指网页视图。能加载显示网页,可以将其视为一个浏览器。它使用了WebKit渲染引擎加载显示网页。

可以内嵌在移动端,实现前端的混合式开发,大多数混合式开发框架都是基于WebView模式进行二次开发的。比如:APIcloud、uni-app等等的框架。

uni-app里的web-view

web-view是一个web浏览器组件,可以用来承担网页的容器,会自动铺满整个屏幕

各小程序平台,web-view 加载的 url 需要在后台配置域名白名单,包括内部再次 iframe 内嵌的其他 url 。

详细属性查看:uni-app里的web-view

通讯方法 引入SDK

嵌入的h5项目或者页面不是uni-app项目搭建的话,需要在 index.html 页面或者是当前的HTML页面引入uni-app项目的API ,这样才能使用,才能相互通讯。

我们是用的Vue-cli脚手架搭建的项目,直接在 html 模板引入

  

Tips

  • 这些 JS 文件是在 web-view 加载的那个 HTML 文件中引用的,而不是 uni-app 项目中的文件。
  • 如果不考虑微信小程序,则无需引入微信的 JS-SDK。
  • 两个文件同时引入时,注意引入的顺序,微信的需要在前。
调用的时机

在引用依赖的文件后,需要在 HTML 中监听 UniAppJSBridgeReady 事件触发后,才能安全调用 uni 的 API。

document.addEventListener('UniAppJSBridgeReady', function() {  
    uni.getEnv(function(res) {  
 console.log('当前环境:' + JSON.stringify(res));  
    });  
});
APP端

监听 web-view 组件的 message 事件,然后在事件回调的 event.detail.data 中接收传递过来的消息。

// 引入需要嵌入的h5 链接

H5端

uni.postMessage 中的参数格式,必须是 data: {}。也就是说,传递的消息信息必须在 data 这个对象中。


APP 向 H5 发送消息 可以动态设置URL,然后 H5 获取 query 参数


跳转页面

在h5页面中引入web-view的方法的基础上,不但可以像上面一样进行通讯,还可以跳转页面,达到从嵌入h5跳回到本地应用的页面上的效果,跳转页面的方式与uni-app一致,在h5页面写入方法就好。

  • uni.navigateTo // 跳转到指定页面
  • uni.redirectTo // 关闭当前页面跳转到指定页面
  • uni.reLaunch // 关闭所有页面跳转到指定页面
  • uni.switchTab // 跳转tab页面–只能跳转tab页
  • uni.navigateBack // 返回页面层级

Tips

  • 当web-view嵌入的h5 是uni-app生成的h5资源的话
    • 使用 uni.webView.navigateTo //其中的webView指的是你嵌入的h5的跳转想要跳转回应用
踩坑
  • uni.showToast 会清掉 loading 状态
    • 同理 hideLoading 也会关闭 showToast
    • 解决方案:使用 H5+ 的 plus.nativeUI.toast
  • 频繁使用 uni.showLoading 会闪烁,比如上传进度场景
    • 解决方案:使用 H5+ 的 plus.nativeUI.showWaiting
  • ing…
转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号