uniapp 嵌套 h5项目(webView实现)亲测有效

场景:主项目为uniapp实现的app项目 通过分包 子项目是 h5 + vue实现

uniapp端

<template>
<!-- 注:使用动态url -->
	 <view>
		<web-view :src="url"></web-view>
	<view>
</template>
<script>
	export default {
		data() {
			return {
				url: ''
			}
		},
		onLoad() {
            // 默认一个你的html(h5地址)
			this.url = '../xxx.html'
		},
			
		mounted(){
            // 需要监听 message 之后触发方法
			window.addEventListener("message", this.handlePostMessage);
		},
		methods: {
            // 触发方法
			handlePostMessage(data) {
				console.log(data)
				console.log(data.data.data.arg.data)
				if (data.data.data.arg.data == 'h5页面传的值') {
					// 给url重新赋值
					this.url = ""
				} else if (data.data.data.arg.data == '判断返回uniapp页面') {
                    // 其他的跳转查看uniapp官网
					uni.switchTab({
						url: '/pages/xxx/index'
					});
				}

			},
		}
	}
</script>

html 页面

<!-- 首先根据引入离线的 webview 或者在线的 我用的是离线的 之后改的方法名 防止和uniapp冲突 -->
<script src="../../js/uni.webview.js" type="text/javascript" charset="utf-8"></script>
methods:{
 fangFa(){
   // webUni 是在离线的webView中改的 文件自己去下载
    webUni.postMessage({
				data: {
					data: 'goList', //传过去用于判断的值
					type: 'message' // type 默认就写message 就写 也可以不写
				}
			});
    }
}

之后接收到值 通过判断就可以实现了

console.log(data.data.data.arg.data) 图片

webView.js 离线修改版

链接: https://pan.baidu.com/s/1ZOJ7ZN1ujj0qFppz7hIeiw  提取码: qf9k

uniapp 官网

web-view | uni-app官网

### 如何在 UniApp嵌套 H5 页面 #### 使用 `web-view` 组件嵌入外部网页 为了在 UniApp 应用程序中加载外部网站或 HTML 文件,可以利用内置的 `<web-view>` 组件。此组件允许开发者通过设置其属性来指定要显示的内容源。 ```html <template> <view class="container"> <!-- web-view用于展示H5页面 --> <web-view :src="url"></web-view> </view> </template> <script> export default { data() { return { url: 'https://www.example.com' // 设置想要嵌入的H5页面链接 } }, } </script> ``` 上述代码展示了如何创建一个简单的 Vue 单文件组件,其中包含了用来呈现远程 URL 的 `<web-view>` 元素[^3]。 #### 解决 WebView 内部插值表达式的可见性问题 当在 Web 视图内渲染来自服务器端的数据时可能会遇到未解析的模板语法(例如 {{data}})。为了避免这种情况影响用户体验,可以在服务端完成所有的数据替换工作后再返回完整的静态资源给客户端;或者采用其他前端框架提供的解决方案,比如 React 或 Angular 来代替 Vue 渲染逻辑[^4]。 #### 实现H5 跳转到 APP 特定页面的功能 对于由 UniApp 构建的应用来说,如果希望从内部集成的 H5 页面导航回到应用程序内的某个特定位置,则需要调用平台特有的 API 函数来进行操作。然而需要注意的是,这些函数的行为取决于当前运行环境——即是在浏览器还是移动应用环境中执行。因此,在编写跨平台兼容性的代码之前应当充分试不同场景下的表现效果。 针对 Android 和 iOS 平台上的 App 内浏览情况,可以通过 JavaScript Bridge 技术实现双向通信机制,从而让 H5 页面能够触发原生功能,如关闭窗口或是切换至另一屏面。具体来讲就是先引入官方提供的 SDK 文件,再按照文档说明注册相应的事件监听器以及处理回调逻辑[^1]。
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

new Vue()

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值