uniapp代码
<template>
<view class="container">
<web-view v-if="src" :src="src" @message="message"></web-view>
</view>
</template>
<script>
export default {
components: {},
data() {
return {
src: "",
}
},
onLoad(param) {
this.src = param.src;
},
onShow() {},
onReady() {
// #ifdef H5
window.addEventListener("message", this.message, false)
// #endif
},
onUnload() {},
methods: {
message(e) {
// 开发者工具、安卓手机在退出webview后都可以触发@message事件
// ios 15.1 在退出webview后没有触发@message事件
console.log('message', e);
},
}
}
</script>
<style lang="scss" scoped>
</style>
h5链接的js代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport"
content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<title></title>
<script src="https://cdn.bootcdn.net/ajax/libs/vConsole/3.9.0/vconsole.min.js"></script>
<script>
var vConsole = new VConsole();
</script>
</head>
<style>
body {
background-color: #fff6da;
margin: 10px;
}
.content {
margin-top: 40px;
}
.title {
margin: 20px 0;
color: #7C5252;
text-align: center;
font-weight: bold;
}
#btn-submit {
width: 100%;
height: 45px;
line-height: 45px;
color: #FFFFFF;
border-radius: 25px;
background-color: #E87777;
border: none;
}
.editor {
margin-bottom: 20px;
border-radius: 20px;
}
.w-e-toolbar {
border-top-left-radius: 10px;
border-top-right-radius: 10px;
}
.w-e-text-container {
border-bottom-left-radius: 10px;
border-bottom-right-radius: 10px;
}
</style>
<body>
<video style="display: none;"></video>
<!-- 頭部 -->
<div id="header"></div>
<div class="content">
<button id="btn-submit">确定</button>
</div>
</body>
<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>
<!--<script type="text/javascript" src="https://gitee.com/dcloud/uni-app/raw/master/dist/uni.webview.1.5.2.js"></script>-->
<script type="text/javascript" src="/static/js/common/uni.webview.1.5.2.js"></script>
<script type="text/javascript">
document.addEventListener('UniAppJSBridgeReady', function () {
console.log('UniAppJSBridgeReady');
document.getElementById('btn-submit').addEventListener('click', function () {
console.log('postMessage');
// 开发者工具、安卓手机在退出webview后都可以触发@message事件
// ios 15.1 在退出webview后没有触发@message事件
uni.postMessage({
data: {
action: 'message'
}
});
});
});
</script>
</html>
1 个回复
FullStack - 【插件开发】【专治疑难杂症】【ios上架、马甲包、白包、过审、已成功上架过几百个】【多款插件已上架:https://ext.dcloud.net.cn/publisher?id=22130】【非诚勿扰】QQ:543610866
提供完整的demo,方便排查