y***@163.com
y***@163.com
  • 发布:2025-09-16 16:00
  • 更新:2025-09-16 16:00
  • 阅读:24

【报Bug】在APP端 (IOS下)webview引入的H5地址连接 H5链接里面有iframe标签 evalJS方法不执行

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: 1

HBuilderX类型: 正式

HBuilderX版本号: 4.75

手机系统: iOS

手机系统版本号: iOS 14

手机厂商: 苹果

手机机型: ios

页面类型: nvue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

示例代码:
APP 端 <!-- 页面结构 --> <view @click="handleDialog" style="font-size: 40px;"> 传参给H5 </view> <web-view id="webViewId" src="http://192.168.2.71:8080/index.html" webview-styles="{ progress: false }" class="webview"
></web-view>

APP调用方法传参到webview引用的H5
// 方法实现
handleDialog() {
const webviewContext = uni.createWebviewContext('webViewId');
if (webviewContext != null) {
console.log("[METHOD1] 成功创建WebView上下文对象");
console.log("[METHOD1] 开始执行JavaScript代码...");

    // 在WebView中执行我们构造的JavaScript代码  
    webviewContext.evalJS('alert(999)');  
}  

}

H5端
访问地址: http://192.168.2.71:8080/index.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<iframe
src="https://www.baidu.com/"
id="888"
sandbox="allow-scripts allow-same-origin"
style="width: 100%; height: 500px"
frameborder="0"

</iframe>
</body>
</html>

操作步骤:

使用官方提供的项目 Hello uvue 或者任意 Unaipp x 框架
在index.uvue页面写 web-view 标签 src引入一个Html地址 同时增加一个方法获取到改 web-view 同时 执行 webviewContext.evalJS('alert(999)');

web-view 引入了 http://192.168.2.71:8080/index.html

这个html里面 引入了一个 iframe标签引入了谷歌地图

然后在ios 系统下 webviewContext.evalJS('alert(999)'); IOS没有执行 安卓是可以的

预期结果:

Ios系统下 evalJS 方法执行

实际结果:

Ios下 evalJS 方法不执行

bug描述:

使用官方提供的项目 Hello uvue 或者任意 Unaipp x 框架
在index.uvue页面写 web-view 标签 src引入一个Html地址 同时增加一个方法获取到改 web-view 同时 执行 webviewContext.evalJS('alert(999)');

web-view 引入了 http://192.168.2.71:8080/index.html

这个html里面 引入了一个 iframe标签引入了谷歌地图

然后在ios 系统下 webviewContext.evalJS('alert(999)'); 没有执行 安卓是可以的

注意:
经过我的测试 iframe标签里面设置 baidu.com 等待大约30 - 60s 该方法是可执行的

如果引入谷歌地图 会一直不执行

2025-09-16 16:00 负责人:无 分享
已邀请:

要回复问题请先登录注册