嵌入式 Cordova 应用程序包正在 Chrome 中打开,而不是在我的 Android 应用程序中启动

Posted

技术标签:

【中文标题】嵌入式 Cordova 应用程序包正在 Chrome 中打开,而不是在我的 Android 应用程序中启动【英文标题】:Embedded Cordova app bundle is being opened in Chrome instead of launching within my Android app 【发布时间】:2021-12-06 20:19:37 【问题描述】:

我正在开发一个将 Cordova 应用程序嵌入到本机应用程序中的项目。在应该将 Cordova 应用程序加载到托管它的 Activity 中时,我看到 Chrome 打开了应用程序包的 URL。这可能是什么原因造成的?

在 logcat 中,当我过滤“cordova”时,我看到了这个错误:

net::ERR_FILE_NOT_FOUND file:///android_asset/www/index.html was not found

为了提供一些上下文... 在 git 中,Cordova 项目目录与原生 Android 项目目录是平行的,并且有一个 git 符号链接从原生 Android 项目中的 main/res/assets/www 到 www 目录科尔多瓦项目。此外——我认为这是关键——大部分 Cordova 应用程序作为一个捆绑包从远程 URL 中拉下。加载该捆绑包会触发 Chrome 启动...但我无法弄清楚为什么捆绑包没有按预期加载到嵌套的 Cordova 应用程序中。

【问题讨论】:

【参考方案1】:

对我来说,问题在于缺少将 www 目录拉入原生 Android 应用程序的 assets 目录的符号链接。结果,本机应用程序无法加载嵌入式 Cordova WebView,并且捆绑包被直接加载到 Chrome 中。

我在 Windows 上,本地 git 存储库默认有 core.symlinks = false,它覆盖了我的全局设置。一旦我解决了这个问题,www 目录及其内容就会正确显示在我的 main/res/assets/ 目录中,并且在重建 + 重新安装正确加载的 Cordova 应用程序之后。

【讨论】:

以上是关于嵌入式 Cordova 应用程序包正在 Chrome 中打开,而不是在我的 Android 应用程序中启动的主要内容,如果未能解决你的问题,请参考以下文章

用于 Telerik 的 Cordova 插件 ios:将自定义框架添加到嵌入式二进制文件

无法通过 Visual Studio Cordova 构建签名的 android 包

如何在 Cordova 应用程序中使用 iPhone 上的蓝牙?

如何让 Cordova 通过插件自动嵌入自定义 iOS 框架?

如何在 Cordova 项目中嵌入 Meteor 视图?

IBM Worklight/Cordova 未在 Android 上 Worklight 的嵌入式 WebView 中加载