【问题标题】:Expo Webview in Production shows ERR_UNKNOWN_URL_SCHEMEExpo Webview in Production 显示 ERR_UNKNOWN_URL_SCHEME
【发布时间】:2020-03-25 17:54:10
【问题描述】:

我有一个带有注入 Javascript 的 HTML 代码,它执行并启动验证服务。它在开发模式下工作得很好,但在生产模式下却不行。

<WebView
  allowFileAccess={true}
  source={(getSource(file))}
  javaScriptEnabled={true}
  injectedJavaScript={script}
  originWhitelist={["https://*", "http://*", "file://*", "asset://*"]}

/>


const download = async () => {
  let file = Asset.fromModule(html);
  if (file.localUri !== null) {
    return file
  }
  await file.downloadAsync() // Optional, saves file into cache
  console.log('file', file)
  return file
}

const getSource = (file) => {
  if (Platform.OS !== 'android') {
    return html
  }
  if (file === null) {
    return {}
  }

  return {
    uri: file.localUri
  }
}

【问题讨论】:

  • 你能分享一个完整的可运行示例吗?生产模式是指在独立应用程序中还是在禁用开发模式的 expo 客户端中?
  • @brentvatne 我有一个 Expo 应用程序。我在生产模式和开发模式下都进行了检查,还安装了 .apk 文件。你需要从代码中得到什么,所以我可以和你分享?

标签: javascript html react-native webview expo


【解决方案1】:

关注tutorial 我遇到了同样的问题。首先,您需要更改文件在 android 上的位置,因为在独立版本中,该文件位于 android_assets 下。因此,即使 localuri 说了一件事,它实际上并不在那个位置。

并且您需要确保在构建时捆绑了 html 文件。在 expo 应用程序中一切正常,因为您在本地访问东西,但是一旦您构建了独立应用程序,情况就不是这样了。我希望这有帮助。我花了一周的时间才终于把事情搞定,那篇文章很有帮助。

【讨论】:

  • 嗨 Garret,感谢您的贡献,您能否将博客文章中的代码添加到您的答案中。有时外部链接会丢失,将来答案也会失效。
  • 感谢加勒特的回答。将点击此链接。
  • 如果有人会遇到这个问题,你可以点击这个链接或寻求帮助,因为我花了很多时间。 :) [链接] medium.com/@filipedegrazia/…
猜你喜欢
  • 2017-06-01
  • 1970-01-01
  • 2016-10-12
  • 1970-01-01
  • 2019-11-10
  • 2020-01-25
  • 1970-01-01
  • 2020-01-09
  • 2022-12-27
相关资源
最近更新 更多