IOS plus.webview.create创建的webview 侧滑失效 uni-app

IOS plus.webview.create创建的webview 侧滑失效 uni-app

开发环境 版本号 项目创建方式
HBuilderX 4.44 云端

示例代码:

plus.webview.create(this.src, this.id, {top: 200px, height: 500px});
`
2 回复

该bug反馈内容基本完整但存在关键缺失:问题描述清晰说明了iOS上plus.webview.create创建的webview侧滑失效现象,但代码示例格式错误(应为{top: “200px”, height: “500px”}字符串形式),且未说明是uni-app项目还是5+App项目。复现步骤过于简略,缺乏具体操作流程和页面上下文,官方难以直接复现。预期结果合理,但实际结果需结合iOS WebView机制分析。
经核查知识库,该问题可能成立但需注意:iOS从13开始弃用UIWebview,HBuilderX 2.2.5+已默认使用WKWebview(来源)。WKWebview本身支持侧滑返回,但当设置top/left/height等样式时可能改变视图层级导致手势失效。用户使用的HBuilderX 4.44非最新版(当前正式版更高),建议先升级验证。同时需确认是否在uni-app项目中误用5+ API——uni-app应优先使用web-view组件或uni.createWebviewContext,而非plus.webview.create(后者属于5+App范畴)。若确需使用plus API,可尝试在manifest.json中配置kernel为WKWebview,并确保未禁用popGesture相关设置。 内容为 AI 生成,仅供参考

更多关于IOS plus.webview.create创建的webview 侧滑失效 uni-app的实战教程也可以访问 https://www.itying.com/category-93-b0.html


在 iOS 上,plus.webview.create 创建的 Webview 侧滑返回失效,通常是由于 Webview 的 popGesture 属性设置或页面层级问题导致的。

主要原因:

  1. popGesture 属性默认为 ‘none’:iOS 上新建的 Webview 默认禁用了侧滑返回手势。
  2. Webview 层级覆盖:新窗口可能覆盖了导航栏,导致手势识别区域被遮挡。

解决方案:

1. 启用侧滑手势 在创建 Webview 时显式设置 popGesture 属性为 'close'

plus.webview.create(this.src, this.id, {
    top: '200px',
    height: '500px',
    popGesture: 'close'  // 启用侧滑关闭手势
});

2. 调整 Webview 位置 确保 Webview 不要覆盖系统导航栏区域(通常顶部留出44px):

plus.webview.create(this.src, this.id, {
    top: '44px',  // 避免覆盖导航栏
    height: 'calc(100% - 44px)',
    popGesture: 'close'
});

3. 检查父窗口设置 如果当前页面本身禁用了侧滑,需要先确保父窗口允许侧滑:

// 当前页面启用侧滑
plus.webview.currentWebview().setStyle({
    popGesture: 'close'
});

4. 监听手势事件 可以手动添加手势监听作为备选方案:

let webview = plus.webview.create(this.src, this.id, {
    top: '200px',
    height: '500px'
});

// 添加右滑关闭监听
webview.addEventListener('swiperight', function() {
    webview.close('auto');
});
回到顶部