无法从cordova应用程序访问window.cordova.plugins



我的Cordova应用程序使用Javascript访问window.Cordova.plugins时遇到问题。

当我的应用程序启动时,网络视图会立即使用以下内容重定向,这意味着我不再可以访问window.cordova.plugins:

window.location.href = "https://www.example.com/";

以前我使用cordova插件远程注入来解决这个问题,该插件注入了cordova和我需要的任何其他Javascript文件,但我发现它现在干扰了我网站上的常规Javascript(主要是网络上的Apple Pay(。此外,该插件已被弃用,因此不会收到更新。

有人能建议一种当前的、最好是经得起未来考验的方式,从我的远程网站访问window.cordova.plugins吗?这需要对ANDROID和IOS都起作用。

谢谢!

虽然这不是一个理想的解决方案,但我已经通过将Cordova Javascript文件上传到我的web服务器并将其包含在我的网页中解决了这个问题。Cordova以及所有插件现在都可以访问了。

对于任何想做同样事情的人:

  • 在您的平台中/<平台>platform_www/目录,上传";cordova.js"cordova_plugins.js";以及";插件";文件夹
  • 上传任何额外的Javascript/CSS/等。您可能需要的文件。(应用程序自定义的任何您需要的内容(
  • 在您的页面上,创建<脚本>加载";cordova.js">

仅此而已"cordova.js";负载";cordova_plugins.js";其继而加载所有附带的插件Javascript文件。

为什么它不是一个理想的解决方案:

  • 每次我发布新版本的应用程序时,我都需要上传重建的Javascript文件,以防它们发生更改
  • 我需要在服务器上保留许多不同版本的文件,以满足尚未更新应用程序的用户的需求。例如1.4/android/、1.4/ios/、1.5/android、1.5/ios/等,服务器必须知道根据应用程序版本(我已将其存储在cookie中(提供正确的文件
  • 由于HTTP(S(请求现在需要由应用程序执行,更不用说服务器必须处理额外的请求,因此会有轻微的性能开销
  • 如果你希望掩盖你的应用程序不仅仅是一个伪装成应用程序的网页这一事实,那你就运气不好了。现在是公开信息

尽管如此,它似乎确实有效。

最新更新