对于那些在使用 Phonegap 6.3.1 时遇到此问题的人。
确保您已在 config.xml 文件(位于项目的根目录)中的 <access> 标记、<allow-intent> 标记和 allow-navigation 标记中将要打开的 URL 列入白名单:
<?xml version='1.0' encoding='utf-8'?>
<widget id="com.phonegap.helloworld" version="1.0.0"
xmlns="http://www.w3.org/ns/widgets"
xmlns:gap="http://phonegap.com/ns/1.0">
...
<access origin="*" />
<allow-intent href="*" />
<allow-navigation href="*" />
...
</widget>
(注意:上述hrefs中的“*”允许访问任何url/路径。在生产中,您可能希望限制某些url/路径)
然后在您的 index.html 文件中添加以下 javascript:
<script type="text/javascript">
document.addEventListener('deviceready', function() {
var url = 'https://www.google.com' // change to whatever you want
cordova.InAppBrowser.open(url, '_self', 'location=no');
}, false)
</script>
此脚本使用 cordova-plugin-inappbrowser 插件,如果您使用标准 Phonegap 模板生成应用程序,该插件应该已经包含在您的 config.xml 文件中。
脚本等待设备准备就绪,然后使用cordova-plugin-inappbrowser plugin 打开给定的 url。 '_self' 参数表示它在Phonegap webview 中打开页面,'location=no' 表示将没有地址栏。有关其他参数选项,请参阅 cordova-plugin-inappbrowser 插件的文档(上面的链接)。
要在适当的模拟器中测试应用程序(假设您安装了Phonegap CLI),请运行以下命令:
phonegap run ios --verbose --stack-trace
phonegap run android --verbose --stack-trace