我有一个phonegap项目,里面有/assets/www/index.html文件。在index.html文件中,我有一个iframe。当我预览应用程序时,iframe可以正常显示,但是当我导出apk应用时,iframe却变成了空白。有谁能帮助我或告诉我为什么会发生这种情况吗?谢谢。
<allow-navigation href="您导航到的网址" />
来白名单域。<meta http-equiv="Content-Security-Policy" content="default-src 'self'; frame-src 'self' https://iframe url">
将以下代码添加到使用 iframe 的 .html 文件中。
或者您可以像 Racil 所说的那样,为任何 div 使用 jQuery onload。
<div id="divid"></div>
<script>
$( "#divid" ).load( "url to load" );
</script>
Source jquery
iframe
在移动应用程序和不同平台上可能会非常棘手。也许可以用另一种方式实现?您可以使用jQuery ('selector').load('url')
方法直接将这些页面注入到一个
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="MyLittleBrowser" style="width: 200px; height: 200px; border: 1px solid #000; overflow: scroll;"></div>
<script>
$("#MyLittleBrowser").load("https://crossorigin.me/https://www.twitter.com/");
</script>
请确保将要加载的所有网站都加入白名单。对于新的PhoneGap版本(>= 5),您需要使用白名单插件,该插件具有用于此目的的新语法。如果您想使用旧语法,则可以使用旧版插件。例如,要运行上面的代码,您需要将以下内容添加到您的config.xml
中:
<plugin name="cordova-plugin-legacy-whitelist" spec="1.1.1" />
<access origin="https://crossorigin.me" />
header("Access-Control-Allow-Origin: *"); //PHP
Response.AddHeader("Access-Control-Allow-Origin", "*"); //C#
iframe
做什么?你真的需要它吗?也许可以用另一种方式完成。iframe
在移动应用和不同平台上可能很棘手。 - Racil Hilan('selector').load('url')
方法直接将这些页面注入到一个div
中。 - Racil Hilan