位置: 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)

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

  • iphone5s换电池教程(iphone5测评)(ipone5s换电池视频)

    iphone5s换电池教程(iphone5测评)(ipone5s换电池视频)

  • 微信完成群待办之后别人能看到吗(微信完成群待办后看不到后面)

    微信完成群待办之后别人能看到吗(微信完成群待办后看不到后面)

  • 安全管家怎么样(安全管家是什么样的软件)

    安全管家怎么样(安全管家是什么样的软件)

  • 苹果手机连itunes没有权限(苹果手机连itunes没有反应)

    苹果手机连itunes没有权限(苹果手机连itunes没有反应)

  • 快手咋更换名字(快手更换名字一直提示被使用)

    快手咋更换名字(快手更换名字一直提示被使用)

  • 笔记本cpu占用过高怎么解决(笔记本cpu占用率太高怎么办)

    笔记本cpu占用过高怎么解决(笔记本cpu占用率太高怎么办)

  • 华为p40pro后面有几个摄像头(华为p40pro后面有裂纹怎么办)

    华为p40pro后面有几个摄像头(华为p40pro后面有裂纹怎么办)

  • 10900k用什么主板(10900k用什么机箱)

    10900k用什么主板(10900k用什么机箱)

  • 爱奇艺几个设备同时在线(爱奇艺几个设备在哪查)

    爱奇艺几个设备同时在线(爱奇艺几个设备在哪查)

  • 朋友圈第一行文字怎么居中(朋友圈第一行文字空格)

    朋友圈第一行文字怎么居中(朋友圈第一行文字空格)

  • 毒上的立即购买跟闪电发货的区别(毒上的购买方式有什么区别)

    毒上的立即购买跟闪电发货的区别(毒上的购买方式有什么区别)

  • ctcc是什么运营商(运营cpc是什么意思啊)

    ctcc是什么运营商(运营cpc是什么意思啊)

  • 为什么有些人没有正在输入(为什么有些人没有膝跳反射)

    为什么有些人没有正在输入(为什么有些人没有膝跳反射)

  • 华为nova6se第一次充电充多长时间(华为nova6se刚上市的时候多少钱)

    华为nova6se第一次充电充多长时间(华为nova6se刚上市的时候多少钱)

  • 魅族16s怎么快速打开相机(魅族16th如何)

    魅族16s怎么快速打开相机(魅族16th如何)

  • vivoz3手机返回键在哪里设置(vivoz3手机返回键在哪里)

    vivoz3手机返回键在哪里设置(vivoz3手机返回键在哪里)

  • xmp是什么(银爵xmp是什么)

    xmp是什么(银爵xmp是什么)

  • 苹果通知栏怎么自定义(苹果通知栏怎么突然打不开了)

    苹果通知栏怎么自定义(苹果通知栏怎么突然打不开了)

  • oppo电池损耗检测代码(oppo电池寿命检测软件)

    oppo电池损耗检测代码(oppo电池寿命检测软件)

  • 小米mix3如何设置滑盖(小米mix3如何设置软件不自动更新)

    小米mix3如何设置滑盖(小米mix3如何设置软件不自动更新)

  • 如何在电脑上制作一寸照片(如何在电脑上制作电子版文件)

    如何在电脑上制作一寸照片(如何在电脑上制作电子版文件)

  • 领英如何删除访问痕迹(领英怎么删除聊天内容)

    领英如何删除访问痕迹(领英怎么删除聊天内容)

  • 多台电脑如何建立局域网(多台电脑如何建立局域网共享打印机)

    多台电脑如何建立局域网(多台电脑如何建立局域网共享打印机)

  • 如何发位置图给对方(怎样发送位置图给微信好友?)

    如何发位置图给对方(怎样发送位置图给微信好友?)

  • 垂直文体怎么设置(垂直文本框怎么设置)

    垂直文体怎么设置(垂直文本框怎么设置)

  • 如何移除WordPress顶部工具栏的标志(如何移除白名单的电话号码)

    如何移除WordPress顶部工具栏的标志(如何移除白名单的电话号码)

  • 企业所得税相关分录
  • 什么是电子银行渠道限额
  • 城建税减半从什么时候开始
  • 收款金额比开票金额少是对方扣的手续费
  • 现金流量表填报说明
  • 个税抵扣夫妻双方只要一个人填写吗
  • 汇算清缴税费怎么入账
  • 标准成本法核算方法
  • 煤炭运输企业的环保方案及措施怎么写
  • 原材料计划成本和实际成本的区别
  • 补充医疗保险能自己交吗
  • 承包费收入如何做账
  • 无形资产土地需要折旧吗
  • 筹建期的行政罚款的账务处理怎么做?
  • 出口退税是按进项税额吗
  • 办公室饮用水可以浇花吗
  • 增值税发票如何读入金税盘
  • 稳岗补贴发放给职工需要交个税吗?
  • 继承的房产出售要交20%是全额还是差额
  • 捐赠允诺是否有法律约束力?
  • 关于330技术维护费
  • 许可费怎么进行分类
  • 小规模纳税人申报表2023年怎么填写
  • 个人所得税任职受雇信息有影响吗
  • 农业免税企业怎么报税
  • 股权并购和资产的关系
  • 向人力资源公司辞职怎么说
  • 如何处理企业所得税纠纷
  • 辅导费是什么
  • 红字增值税专用发票是什么
  • 哪些收入需要交消费税
  • 支付厂房租金计入什么科目
  • paypal付款会自动换汇吗
  • uniapp components
  • 衍生工具主要用途
  • 机票报销属于什么费
  • Access-Control-Allow-Origin 翻译
  • 一键部署源码
  • python字符串中变量替换
  • python集合的并集符号语言
  • 培训费个人的发票能开吗
  • 投资他人公司
  • 小微企业认定办法
  • 业务招待费是否计入管理费用
  • 生产部门使用的无形资产摊销
  • 怎么计算利润的百分比
  • 公司购买理财产品收益会计分录
  • 小微企业员工人数限制
  • 运输费用增值税税率9%
  • 产品检测费计入什么二级科目里
  • 来料加工和进料加工的相同之处
  • 库存不够如何结算成本
  • 进项都抵扣完了怎么做账
  • 分包开给总包的票,能不能抵扣
  • 小规模收的专票以后能抵扣吗
  • 来料加工的特点包括
  • 重大影响包括50%吗
  • 对会计人员继续教育的目的包括了保障
  • mysql 5.7.24安装
  • mysql 5.5 5.6
  • vim入门教程
  • win7修改系统版本
  • xp系统内存不能为read的解决方法
  • xp文件夹选项不见了怎么办
  • centos7修复安装
  • windows7的word
  • kmswin7激活步骤
  • windows10总是弹出用户账户控制
  • js中如何实现数字相加
  • cocoscreator shader
  • javascript中的闭包
  • 到了这个年纪吉他谱完整版
  • js oncontextmenu事件使用详解
  • shell脚本生成文件
  • JavaScript File API文件上传预览
  • 深入python3
  • jquery插件怎么写
  • 雷爵电动车官网
  • 深圳公寓出售要交什么税
  • 单位纪检员和纪检委员区别
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设