如何从远程网站加载cordova.js?

如何从远程网站加载cordova.js?,cordova,Cordova,我知道这是一个糟糕的想法,但我有一个应用程序,可以导航到一个网站,然后使用 <script src="cdvfile://localhost/persistent/cordova.js" /> 但这似乎不再管用了。你知道吗。。。过了好几个小时,我一发到StackOverflow,我就明白了 <script src="cdvfile://localhost/bundle/www/cordova.js" /> (至少对于iOS,不能为Android说话)对于And

我知道这是一个糟糕的想法,但我有一个应用程序,可以导航到一个网站,然后使用

<script src="cdvfile://localhost/persistent/cordova.js" />


但这似乎不再管用了。

你知道吗。。。过了好几个小时,我一发到StackOverflow,我就明白了

<script src="cdvfile://localhost/bundle/www/cordova.js" />

(至少对于iOS,不能为Android说话)

对于Android: 使用以下命令禁用混合内容策略: )

对于ios: 我向文件插件提交了一份PR,它解决了ios上的混合内容问题:apache/cordova插件文件#296 固定版本可从以下网址获得: 如果在webview上加载远程站点,则允许使用url访问本地文件: 而不是 cdvfile://localhost/bundle/www/cordova.js
并由此解决了混合内容问题

有一个缺陷未解决,请查看评论

你有没有在Android上偶然发现过这个问题?这似乎不适用于安全的网站。例如,如果您必须导航到“https:”网站,然后加载cordova.js,您可以共享代码来实现android端吗?@syonip创建了一个私有cordova插件,并在那里使用了与此处类似的代码,在插件加载时禁用查看混合内容,并将cordova插件配置为在应用程序加载时加载。我实现了一种不同的方法,因为我不想更改webview中的安全设置,请参见此处:@syonip因为托管网站是您的网站,如果其中包含恶意内容,那么您将遇到比禁用混合内容策略所产生的问题更大的问题。因此,我不相信您会在这种特定情况下提高安全性,除非您能描述一种场景,即您在cordova托管的网站控制器中使用的混合内容保护将拯救您。如果需要,注入恶意内容的攻击者将始终能够承载https内容。嗯,我必须考虑一个场景:)