【问题标题】:window.Ionic.WebView.convertFileSrc not working in ionic 3window.Ionic.WebView.convertFileSrc 在离子 3 中不起作用
【发布时间】:2019-06-11 15:55:33
【问题描述】:

我正在尝试使用 cordova-plugin-camera 插件显示从相机/图库中选择的图像,并使用 window.Ionic.WebView.convertFileSrc() 进行 重写 file:// 由于 wkwebview。

它在安卓平台上运行良好,但在 iOS 平台上它给出了内容安全策略的错误

例如我得到 file:///Users/CN339/Library/Developer/CoreSimulator/Devices/XXXXXXX/data/Containers/Data/Application/XXXXX/Library/NoCloud/cdv_photo_002.jpg 从相机插件和在以前的本地 url 上使用 window.Ionic.WebView.convertFileSrc 后,我得到以下错误。

Content Security Policy error

【问题讨论】:

  • 感谢您的回复。我也使用它,但它显示已弃用,建议改用 window.Ionic.WebView.convertFileSrc。而且效果不好
  • @VinayThakur 你找到解决方案了吗?
  • @Abdu4 是的。您必须使用 window.Ionic.WebView.convertFileSrc 以及 Angular 的 DomSanitizer bypassSecurityTrustUrl。
  • @VinayThakur 你能详细解释一下如何使用 DomSanitizer bypassSecurityTrustUrl 和使用 window.Ionic.WebView.convertFileSrc

标签: ionic-framework ionic3 wkwebview content-security-policy


【解决方案1】:

我尝试了很多方法来加载本地文件,例如图像或视频。我尝试使用

  • normalizeUrl(来自离子角度)
  • 正则表达式并替换本地文件路径:path.replace(/^file:///, '')
  • window.Ionic.WebView.convertFileSrc()

以上都不适合我。我可以加载本地文件的唯一方法是使用

window['Ionic']['WebView'].convertFileSrc(path);

希望它能如你所愿。我只在安卓上测试过

更新 你可以使用 win.Ionic.WebView.convertFileSrc(),就像第三个项目符号一样,只有当你声明 win: any = window. 将胜利定义为任何对我来说都是诀窍 - https://stackoverflow.com/a/55934321/10243902

【讨论】:

    【解决方案2】:

    this.tempSchemeImagePath = window['Ionic']['WebView'].convertFileSrc(nativeURL);

    【讨论】:

    • 请将您的代码放在代码块中并解释您的答案
    【解决方案3】:

    在ionic-webview突然停止工作后,在iOS上遇到了同样的问题,所以我卸载并重新安装了插件:

    cordova 插件删除 cordova-plugin-ionic-webview

    cordova 插件添加cordova-plugin-ionic-webview

    window.Ionic.WebView.convertFileSrc 又开始像魅力一样工作了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-20
      • 2017-09-07
      • 2018-03-11
      • 1970-01-01
      • 1970-01-01
      • 2018-05-25
      • 2019-01-26
      • 1970-01-01
      相关资源
      最近更新 更多