uni-app 快手小程序 web-view 组件嵌套h5页面 uni.redirectTo({ url }); 失效,头条和微信均正常

uni-app 快手小程序 web-view 组件嵌套h5页面 uni.redirectTo({ url }); 失效,头条和微信均正常

产品分类:

uniapp/小程序/微信

PC开发环境操作系统:

Windows

HBuilderX类型:

正式

HBuilderX版本号:

3.2.3

第三方开发者工具版本号:

1.6.2

基础库版本号:

1.6.2

项目创建方式:

HBuilderX

App下载地址或H5网址:

https://old.letchigo.com/waimai/index/chooseLocation?lng=126.580001&lat=45.699702

示例代码:

点击事件失效 微信和抖音都能正常 快手小程序失效

document.addEventListener('UniAppJSBridgeReady', function () {  
    let url= '/pages/map/chooseLocation'  
    uni.redirectTo({  
        url  
    });  
});  

操作步骤:

web-view中的h5点击事件失效 微信和抖音都能正常 快手小程序失效

预期结果:

返回上一页面

实际结果:

击事件失效

示例图片


更多关于uni-app 快手小程序 web-view 组件嵌套h5页面 uni.redirectTo({ url }); 失效,头条和微信均正常的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app 快手小程序 web-view 组件嵌套h5页面 uni.redirectTo({ url }); 失效,头条和微信均正常的实战教程也可以访问 https://www.itying.com/category-93-b0.html


在快手小程序中,web-view 组件内的 H5 页面调用 uni.redirectTo 失效,通常是由于快手小程序平台对 web-view 与宿主环境的通信限制较为严格,或存在兼容性问题。以下为排查和解决方向:

  1. 检查基础库版本:确保使用的快手小程序基础库为最新版本,低版本可能存在未支持的 API 或通信机制问题。

  2. 通信机制差异:快手小程序的 web-view 可能未完全支持 uni 对象的部分方法。尝试改用 uni.postMessage 与宿主页面通信,再由宿主页面执行 uni.redirectTo。示例:

    • H5 页面中:
      uni.postMessage({ data: { action: 'redirect', url: '/pages/map/chooseLocation' } });
      
    • 宿主页面的 web-view 组件监听消息:
      <web-view :src="url" @message="handleMessage"></web-view>
      
      methods: {
        handleMessage(e) {
          const { action, url } = e.detail.data[0];
          if (action === 'redirect') {
            uni.redirectTo({ url });
          }
        }
      }
      
  3. 事件监听时机:确保 UniAppJSBridgeReady 事件在快手环境中能正常触发。可尝试改用 uni 对象直接调用(如 uni.webView.postMessage)或延迟执行,避免事件未就绪。

  4. 平台条件编译:针对快手小程序单独处理,使用条件编译:

    // #ifdef MP-KUAISHOU
    // 快手专用逻辑,如使用 postMessage
    // #endif
回到顶部