IOS 上 toRemoteURL 生成的本地网络路径无法访问 uni-app

IOS 上 toRemoteURL 生成的本地网络路径无法访问 uni-app

开发环境 版本号 项目创建方式
Windows 22621.1413 HBuilderX
iOS 13.4 -
- - -

产品分类:uniapp/App

PC开发环境操作系统:Windows

HBuilderX类型:正式

HBuilderX版本号:3.8.12

手机系统:iOS

手机系统版本号:iOS 13.4

手机厂商:苹果

手机机型:苹果7

页面类型:vue

vue版本:vue3

打包方式:云端

示例代码:

const wwwServer = await new Promise(resolve=>{  
    plus.io.requestFileSystem(plus.io.PRIVATE_WWW,({root})=>{  
        return resolve(root.toRemoteURL())  
    })  
})  
console.log(  
    `${wwwServer}/hybrid/html/index.html`  
)  
webview= plus.webview.create(  
`${wwwServer}/hybrid/html/index.html`  
,'test',{  
    width:'100%',  
    height:'100%',  
})

操作步骤:

_www 目录作为 http://localhost:13131/_www 访问 然后访问里面 index.html 资源 安卓可以 IOS不行

预期结果:

正常访问

实际结果:

无法访问


更多关于IOS 上 toRemoteURL 生成的本地网络路径无法访问 uni-app的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

demo 在这里 直接拖进 HBuilderX 运行到 ios真机即可

更多关于IOS 上 toRemoteURL 生成的本地网络路径无法访问 uni-app的实战教程也可以访问 https://www.itying.com/category-93-b0.html


在iOS上使用toRemoteURL()生成的本地路径访问存在限制,这是iOS的安全机制导致的。以下是关键点:

  1. iOS的WebView对本地文件访问有更严格的沙箱限制,toRemoteURL()生成的路径可能无法直接用于WebView加载。

  2. 解决方案建议:

  • 对于uni-app项目,推荐使用uni-app自带的web-view组件而非原生WebView
  • 如需使用原生WebView,建议将文件复制到可访问目录:
const targetPath = '_doc/test.html'
plus.io.resolveLocalFileSystemURL(`${wwwServer}/hybrid/html/index.html`, 
  (entry) => {
    entry.copyTo(plus.io.PRIVATE_DOC, targetPath, 
      (entry) => {
        const realUrl = entry.toLocalURL()
        plus.webview.create(realUrl, 'test', {
          width: '100%',
          height: '100%'
        })
      }
    )
  }
)
回到顶部