位置: IT常识 - 正文

如何Uniapp中嵌入H5,并且在H5中跳转到APP的指定页面(uniapp 嵌套webview)

编辑:rootadmin
如何Uniapp中嵌入H5,并且在H5中跳转到APP的指定页面 如何Uniapp中嵌入H5,并且在H5中跳转到APP的指定页面场景Web-View在官网中提供的是APP嵌入原生的H5页面在APP中使用web-view嵌入H5页面使用web-view组件就可以实现,代码如下调用方法跳转至app 的页面的关键方法 uni.reLaunch以上代码可以解决APP嵌入原生H5页面跳转回APP的问题,但是使用uniapp开发H5就会失效,在uniapp开发H5页面使用 uni.reLaunch 只能跳转到H5项目本地的页面。解决方法如下1. 下载官网web-view的SDK2. 在H5项目的main.js 文件里导入这个文件3. 原生H5使用的跳转方法和uniapp开发的H5使用的跳转方法是不一样的场景

推荐整理分享如何Uniapp中嵌入H5,并且在H5中跳转到APP的指定页面(uniapp 嵌套webview),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:uniapp嵌套页面,uniapp怎么用,uniapp引入element,uniapp 嵌套webview,uniapp嵌套页面,uniapp怎么引入elementui,uniapp嵌套页面,uniapp嵌入网页,内容如对您有帮助,希望把文章链接给更多的朋友!

有一个需求是,在app中嵌入一个H5页面,H5是一个网络页面,不在app项目里,APP可以打开H5页面,实现单点登录,并且在H5 页面中打开APP指定的页面

Web-View

在uniapp中,有一个web-view组件,这就相当于一个浏览器组件,可以用来承载网页的容器,会自动铺满整个页面 web-view的详细文档参考uniapp官网

https://uniapp.dcloud.net.cn/component/web-view.html#web-view在官网中提供的是APP嵌入原生的H5页面从官方demo的代码,原生H5页面使用的HTML在APP中使用web-view嵌入H5页面使用web-view组件就可以实现,代码如下<template><view><web-view src="https://uniapp.dcloud.io/static/web-view.html"></web-view></view></template>

src是H5的地址,可以是任何网址,与APP的地址什么的没有关系,也可以是www.baidu.com ,在这里为了方便测试,使用官方的 H5地址 官方原生h5 代码如下

<!DOCTYPE html><html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /> <title>网络网页</title> <style type="text/css"> .btn { display: block; margin: 20px auto; padding: 5px; background-color: #007aff; border: 0; color: #ffffff; height: 40px; width: 200px; } .btn-red { background-color: #dd524d; } .btn-yellow { background-color: #f0ad4e; } .desc { padding: 10px; color: #999999; } .post-message-section { visibility: hidden; } </style> </head> <body> <p class="desc">web-view 组件加载网络 html 示例。点击下列按钮,跳转至其它页面。</p> <div class="btn-list"> <button class="btn" type="button" data-action="navigateTo">navigateTo</button> <button class="btn" type="button" data-action="redirectTo">redirectTo</button> <button class="btn" type="button" data-action="navigateBack">navigateBack</button> <button class="btn" type="button" data-action="reLaunch">reLaunch</button> <button class="btn" type="button" data-action="switchTab">switchTab</button> </div> <div class="post-message-section"> <p class="desc">网页向应用发送消息,注意:小程序端应用会在此页面后退时接收到消息。</p> <div class="btn-list"> <button class="btn btn-red" type="button" id="postMessage">postMessage</button> </div> </div> <script type="text/javascript"> var userAgent = navigator.userAgent; if (userAgent.indexOf('AlipayClient') > -1) { // 支付宝小程序的 JS-SDK 防止 404 需要动态加载,如果不需要兼容支付宝小程序,则无需引用此 JS 文件。 document.writeln('<script src="https://appx/web-view.min.js"' + '>' + '<' + '/' + 'script>'); } else if (/QQ/i.test(userAgent) && /miniProgram/i.test(userAgent)) { // QQ 小程序 document.write( '<script type="text/javascript" src="https://qqq.gtimg.cn/miniprogram/webview_jssdk/qqjssdk-1.0.0.js"><\/script>' ); } else if (/miniProgram/i.test(userAgent) && /micromessenger/i.test(userAgent)) { // 微信小程序 JS-SDK 如果不需要兼容微信小程序,则无需引用此 JS 文件。 document.write('<script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.4.0.js"><\/script>'); } else if (/toutiaomicroapp/i.test(userAgent)) { // 头条小程序 JS-SDK 如果不需要兼容头条小程序,则无需引用此 JS 文件。 document.write( '<script type="text/javascript" src="https://s3.pstatp.com/toutiao/tmajssdk/jssdk-1.0.1.js"><\/script>'); } else if (/swan/i.test(userAgent)) { // 百度小程序 JS-SDK 如果不需要兼容百度小程序,则无需引用此 JS 文件。 document.write( '<script type="text/javascript" src="https://b.bdstatic.com/searchbox/icms/searchbox/js/swan-2.0.18.js"><\/script>' ); } else if (/quickapp/i.test(userAgent)) { // quickapp document.write('<script type="text/javascript" src="https://quickapp/jssdk.webview.min.js"><\/script>'); } if (!/toutiaomicroapp/i.test(userAgent)) { document.querySelector('.post-message-section').style.visibility = 'visible'; } </script> <!-- uni 的 SDK --> <!-- 需要把 uni.webview.1.5.4.js 下载到自己的服务器 --> <script type="text/javascript" src="https://unpkg.com/@dcloudio/uni-webview-js@0.0.3/index.js"></script> <script type="text/javascript"> // 待触发 `UniAppJSBridgeReady` 事件后,即可调用 uni 的 API。 document.addEventListener('UniAppJSBridgeReady', function() { uni.postMessage({ data: { action: 'message' } }); uni.getEnv(function(res) { console.log('当前环境:' + JSON.stringify(res)); }); document.querySelector('.btn-list').addEventListener('click', function(evt) { var target = evt.target; if (target.tagName === 'BUTTON') { var action = target.getAttribute('data-action'); switch (action) { case 'switchTab': uni.switchTab({ url: '/pages/tabBar/API/API' }); break; case 'reLaunch': uni.reLaunch({ url: '/pages/tabBar/component/component' }); break; case 'navigateBack': uni.navigateBack({ delta: 1 }); break; default: uni[action]({ url: '/pages/component/button/button' }); break; } } }); document.getElementById('postMessage').addEventListener('click', function() { uni.postMessage({ data: { action: 'message' } }); }); }); </script> </body></html>如何Uniapp中嵌入H5,并且在H5中跳转到APP的指定页面(uniapp 嵌套webview)

在这里我们提取出关键的代码

<!-- 需要把 uni.webview.1.5.4.js 下载到自己的服务器 --> 导入web-view 的SDK <script type="text/javascript" src="https://unpkg.com/@dcloudio/uni-webview-js@0.0.3/index.js"></script>调用方法跳转至app 的页面的关键方法 uni.reLaunchuni.reLaunch({ url: '/pages/tabBar/component/component' });

这个方法是跳转到APP的指定页面,url就是APP页面的路径,在APP项目中目录结构如下

对于这几个跳转方法可以自己去学习

case 'switchTab': uni.switchTab({ url: '/pages/tabBar/API/API' }); break; case 'reLaunch': uni.reLaunch({ url: '/pages/tabBar/component/component' }); break; case 'navigateBack': uni.navigateBack({ delta: 1 }); break;以上代码可以解决APP嵌入原生H5页面跳转回APP的问题,但是使用uniapp开发H5就会失效,在uniapp开发H5页面使用 uni.reLaunch 只能跳转到H5项目本地的页面。解决方法如下1. 下载官网web-view的SDK

在官网的原生H5 demo 导入了这个关键的Js文件,通过浏览器打开 https://unpkg.com/@dcloudio/uni-webview-js@0.0.3/index.js 复制里面的JS代码 在H5项目里创建一个js文件 web-view.js,内容即是以上js代码

2. 在H5项目的main.js 文件里导入这个文件

3. 原生H5使用的跳转方法和uniapp开发的H5使用的跳转方法是不一样的uni.webView.reLaunch({url: '/pages/tabBar/component/component'});

区别在于 uniapp开发的H5要加上 webView

本文链接地址:https://www.jiuchutong.com/zhishi/280073.html 转载请保留说明!

上一篇:Linux中遇到device is busy的处理方法(linux device drivers)

下一篇:路由器的默认网关是多少详情(路由器的默认网关在哪里看)

  • 揭秘微信淘客日引流200+精准人群全过程(淘客微信公众号怎么做)

    揭秘微信淘客日引流200+精准人群全过程(淘客微信公众号怎么做)

  • oppo手机怎么控制孩子玩手机(OPPO手机怎么控制)

    oppo手机怎么控制孩子玩手机(OPPO手机怎么控制)

  • 抖币怎么转给另外一个号(抖币怎么转让给别人)

    抖币怎么转给另外一个号(抖币怎么转让给别人)

  • 抖音未成年模式怎么关闭(抖音未成年模式有什么用)

    抖音未成年模式怎么关闭(抖音未成年模式有什么用)

  • 苹果11信号加强吗(苹果11信号加强排线)

    苹果11信号加强吗(苹果11信号加强排线)

  • 腾讯视频怎么录屏3分钟(腾讯视频怎么录制视频片段)

    腾讯视频怎么录屏3分钟(腾讯视频怎么录制视频片段)

  • ios不能微信支付了吗(ios不可以微信支付)

    ios不能微信支付了吗(ios不可以微信支付)

  • 荣耀30红外怎么用(honor30红外)

    荣耀30红外怎么用(honor30红外)

  • excel2010图表类型有几种(Excel2010图表类型有)

    excel2010图表类型有几种(Excel2010图表类型有)

  • 快手申请退款多久能到账(快手申请退款多长时间能退回)

    快手申请退款多久能到账(快手申请退款多长时间能退回)

  • 抖音小店是什么平台(抖音小店是什么时候开始的)

    抖音小店是什么平台(抖音小店是什么时候开始的)

  • qq一起编辑文档怎么取消(QQ一起编辑文档选项变成代码量)

    qq一起编辑文档怎么取消(QQ一起编辑文档选项变成代码量)

  • 鼠标卡顿是怎么回事(鼠标卡顿怎么解决)

    鼠标卡顿是怎么回事(鼠标卡顿怎么解决)

  • 淘宝买家秀在哪儿看(淘宝买家秀在哪里看)

    淘宝买家秀在哪儿看(淘宝买家秀在哪里看)

  • 路由器访客网络要开启还是不开启(路由器访客网络会影响主人网络么)

    路由器访客网络要开启还是不开启(路由器访客网络会影响主人网络么)

  • 怎么补办手机卡移动(联通怎么补办手机卡)

    怎么补办手机卡移动(联通怎么补办手机卡)

  • ipadair3有3dtouch吗(ipadair2有3dtouch)

    ipadair3有3dtouch吗(ipadair2有3dtouch)

  • pubglite地区不支持怎么办(pubglite地区不可用怎么办win10)

    pubglite地区不支持怎么办(pubglite地区不可用怎么办win10)

  • 大数据运用安全策略包括(大数据安全应用)

    大数据运用安全策略包括(大数据安全应用)

  • 淘宝不显示待发货数字(淘宝不显示待发货待收货)

    淘宝不显示待发货数字(淘宝不显示待发货待收货)

  • 荣耀手环3连不上手机(荣耀手环连不上蓝牙)

    荣耀手环3连不上手机(荣耀手环连不上蓝牙)

  • 淘宝直播专业分怎么上(淘宝直播类目有哪些)

    淘宝直播专业分怎么上(淘宝直播类目有哪些)

  • 微信模板消息是什么(微信模板消息设置格式)

    微信模板消息是什么(微信模板消息设置格式)

  • 电脑截图快捷键ctrl加什么(电脑截图快捷键是什么组合)

    电脑截图快捷键ctrl加什么(电脑截图快捷键是什么组合)

  • 抖音口罩特效在哪(抖音口罩挑战怎么拍)

    抖音口罩特效在哪(抖音口罩挑战怎么拍)

  • python机器人编程——差速机器人小车的控制,控制模型、轨迹跟踪,轨迹规划、自动泊车(上)(python机器人编程控制)

    python机器人编程——差速机器人小车的控制,控制模型、轨迹跟踪,轨迹规划、自动泊车(上)(python机器人编程控制)

  • 销售收入印花税率是多少
  • 企业所得税怎么算出来
  • 什么是财务报表审计
  • 技术服务费入账
  • 小企业计提坏账准备的会计分录怎么写
  • 售后回租涉税
  • 长期股权投资权益法初始成本的确定
  • 刚成立公司没有报表怎么解释
  • 出纳如何登账
  • 核定征收是不是不需要发票了
  • 前期差错更正中所得税的会计处理
  • 普票冲红需要收回全部联次吗
  • 资产负债表和业务活动表勾稽关系不对怎么查
  • 公司对外投资的规定
  • 事业单位固定资产管理办法
  • 职工食堂对外经营合法吗
  • 预提费用和应付利息一样吗
  • 资产账实不符说明
  • 融资租入固定资产改建支出计入
  • 存货资产减值损失转回怎么做账
  • win11怎么用
  • 为什么手机连不上热点
  • 全免增值税企业有哪些
  • 会计折算是什么意思
  • 出租人负责维修
  • 农民工工资保证金退还条件
  • 确定无形资产使用寿命时应当考虑的因素有
  • 无销售发票的基本户收入?
  • 君子兰的养殖方法
  • 融资租赁怎么做到表外
  • vue引入高德地图绘制多边形,编辑多边形
  • 房地产土地使用税核减条件
  • 建筑 营改增
  • 小程序开发必备的东西有哪些
  • php simple html dom parser
  • lstm crf
  • vgchange命令
  • 帝国cms怎么用
  • 现金折扣什么时候冲减收入
  • 帝国cms移动端
  • mongodb自增主键
  • 软件企业增值税计算
  • 无退税产品出口征税
  • 物业费的税可以抵扣吗
  • 财务会计和预算会计金额可以不等吗
  • 农业发展公司有没有库存商品的
  • 一般纳税人企业所得税5%还是25%
  • 劳动合同没有齐缝章
  • 销售方销售返利单独开具
  • 固定资产处置当月需要计提折旧吗
  • 委托代销商品的核算
  • 负数发票开错了是否可以作废?
  • 当月没认证发票有补救措施吗
  • 业务员垫付保费
  • 公司给员工结婚红包
  • 进口关税,增值税,消费税
  • 什么情况下需要打狂犬疫苗
  • 实收资本的主要用途
  • 事业单位开的发票
  • 成本会计难做吗没做过
  • 怎么操作win10系统
  • 搜狗浏览器ie8
  • linux中的ssh命令
  • centos中netspeeder网络加速/优化器的安装方法
  • 磁盘空间不足怎么弄
  • win8图片查看器无法打开图片内存不足
  • win7使用技巧图解
  • linux安装linux
  • android图形
  • python语言中
  • cocos2dx-js
  • android deam
  • 聊天界面的新消息通知设置 找不到
  • js实现的简单鼠标代码
  • JavaScript Switch 声明
  • shape form的区别
  • jquery添加属性的方法
  • 车辆购置税如何入账
  • 购房发票的发票代码是哪个
  • 江苏国税发票出库时间
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设