c55
c55
  • 发布:2025-07-22 14:36
  • 更新:2025-07-22 16:05
  • 阅读:76

uni-app打包iosApp,webview嵌入的页面无法和子页面通信

分类:uni-app

uni-app打包为iosApp之后,uni-app中webview嵌入的主页面和该主页面通过iframe嵌入的子页面之间,在子页面通过window.addEventListener('message',fn,false),无法接收到主页面的信息,在打包的安卓App就可以接收到消息。

2025-07-22 14:36 负责人:无 分享
已邀请:
DCloud_UNI_yuhe

DCloud_UNI_yuhe

能否提供一下一个可以复现的项目?

  • c55 (作者)

    我们通过webview引入了一个地址是流程h5地址,点击流程列表中的第二个整改流程,进入流程详情页面,流程详情页面内嵌的页面是我们自己的页面,不属于流程页面,我们自己页面和流程通信是通过window.addEventListener('message',fn,false)和postMessage

    2025-07-22 15:33

  • c55 (作者)

    是否为ios不允许js通信

    2025-07-22 15:36

  • DCloud_UNI_yuhe

    回复 c55: 这个您发的这个代码,我也不知道存在什么问题,请您简化一下h5,只保留相关的可以复现的内容即可,能够明确展示所属问题,而不是直接发您的项目代码

    2025-07-22 15:44

  • c55 (作者)

    回复 DCloud_UNI_yuhe: 这个就是最简化的代码,uni-app中的代码通过webview加载了一个h5页面,h5页面中通过iframe嵌入了子页面

    2025-07-22 16:08

  • c55 (作者)

    回复 DCloud_UNI_yuhe: 这个就是uni-app中的代码,其他都是h5的代码了不是用uni-app写的

    2025-07-22 16:09

  • c55 (作者)

    回复 DCloud_UNI_yuhe: uni-app中的webview打包为ios使用的为WKWebview,这个WKWebview是不是对嵌入的页面通信存在限制

    2025-07-22 16:14

  • DCloud_UNI_yuhe

    回复 c55: 你可以尝试新建h5,找一下具体问题在哪里

    2025-07-22 16:15

  • c55 (作者)

    回复 DCloud_UNI_yuhe: 和h5没有关系,uni-app中的代码只是一个webview中的src是一个h5地址,h5是其他的项目地址,h5页面在uni-app打包出来的安卓,在web端都没问题,在uni-app打包的ios中存在问题

    2025-07-22 16:22

  • c55 (作者)

    回复 DCloud_UNI_yuhe: 我通过排除法,定位到uni-app打包出来的iosApp中,嵌入的h5主页面和子页面无法通信,我想知道的是,uni-app打包ios的过程中对webview做了什么处理,导致这个无法通信

    2025-07-22 16:26

  • c55 (作者)

    回复 DCloud_UNI_yuhe: 直接使用原生开发的iosApp加载这个h5页面没问题。

    2025-07-22 16:29

c55

c55 (作者) - 11

<template>  
  <view class="web-view-content">  
    <web-view  
      :src="webUrl"  
    ></web-view>  
  </view>  
</template>  

<script setup lang="ts">  
const webUrl = ref<string>("");  
onLoad((options) => {  

  webUrl.value = 'https://xmgl.glodon.com/mobile-apps/workflow-center/index.html?hiddenPageTitle=true&local_tenantId=966031524761600&local_token=cn-b9ecf845-af57-4bfd-9045-0f1684ca2961-ut&orgId=1034665416708608#/home'  
    console.log(webUrl.value)  
});  

</script>  

<style lang="scss">  

</style>  

要回复问题请先登录注册