所以我有一个带Phonegap 2.9.0的phonegap项目,并使用PhonegapBuild构建
我在我的应用程序中有外部链接,我想打开inapp或使用我的应用程序之外的默认设备浏览器。我对两种解决方案都很满意。今天我的应用程序打开链接inapp但它全屏,无法缩放,并且没有按钮返回应用程序...
我试图找出一个解决方案好几天,并在这里看同样的问题,但没有什么工作好。
有人可以清楚地解释一下这些东西是什么,以及有什么不同的选择/参数,因为我可以说它根本不清楚/容易!
Q1:
我首先要问的是:在文件config.xml中,对于phonegap 2.3.0,现在不推荐使用首选项stay-in-webview吗?那么没什么好希望的呢?
Q2: 我通过window.open和目标系统/ blank / self阅读并尝试了很多插件InAppBrowser,但对我来说没有任何区别。我留在InApp但没用,因为没有导航按钮 我在这里错过了什么吗?
plugin name="InAppBrowser" value="CDVInAppBrowser"
答案 0 :(得分:19)
我首先要问的是:在文件config.xml中,对于phonegap 2.3.0,现在已经弃用了首选的stay-in-webview吗?那么没什么好希望的呢?
这是对的。如果你使用2.9
,甚至不担心这个设置我通过window.open和目标系统/ blank / self阅读并尝试了很多插件InAppBrowser,但对我来说没有任何区别。我留在InApp但没用,因为没有导航按钮。我在这里错过了什么吗?
我也遇到了一些问题。他们的文档有点分散,需要全部阅读。以下是我如何运作:
<script src="phonegap.js"></script>
要在inappbrowser中打开链接,请使用此javascript:
function openURL(urlString){
myURL = encodeURI(urlString);
window.open(myURL, '_blank');
}
这将打开inappbrowser中传递的URL。如果您将window.open(myURL, '_blank');
更改为window.open(myURL, '_system');
,则会在系统浏览器中打开传递的网址。
最后,您的商品点击如下所示:
<a href='#' onclick='openURL("http://www.urlyouwant")/>
或者您可以将事件列表器附加到对象,但我认为您明白了这一点。
此外,InAppBrowser还有许多可以附加到它的事件侦听器。如果您对这些感兴趣,请查看documentation。
重要!!!!别忘了第1步!
希望这有帮助。
答案 1 :(得分:10)
在Android和iOS中有两种不同的方式可以打开网址。
FOR IOS使用以下代码:
window.open("http://google.com", '_system');
和Android使用以下代码:
navigator.app.loadUrl("http://google.com", {openExternal : true});
答案 2 :(得分:3)
Dom的回答适用于使用PhoneGap 2.9.0
HOWEVER ,就像他说按照第1步一样非常重要。我正在使用https://build.phonegap.com来编译我的应用程序而且我使用了
<script type="text/javascript" charset="utf-8" src="cordova.js"></script>
让这个代替步骤#1
如果其他所有方法都失败了,请尝试此示例。它是由一位电话缺口员工撰写的:
答案 3 :(得分:1)
更新时间:2016-03-20 我已经就此主题创建了一个教程。
Tutorial: Phonegap Build external webpage in iframe with whitelist example
如果您正在阅读本文,您可能会注意到此帖子指的是Cordova / Phonegap / Phonegap Build的2.9.0。 2.x已被正式弃用,不再受支持。
如果您使用的是 2.X ,并且想要继续开发应用,请升级。
如果您使用 3.x,4.x或5.x 或更高版本进行编译,请继续阅读。
如果您使用Google搜索外部链接无法打开,那么这就是应该知道的内容。 9月和9月2015年10月,Cordova和Phonegap做出了一些重大改变。这些更改生效white-list
ing
White-list
表示您*必须*为系统提供您计划使用的外部链接的白名单。整个系统可能会令人困惑。我目前正在撰写博客文章,但在此之前 您需要了解的内容 。
white-list
系统有三(3)个部分
config.xml
config.xml
申请不是直截了当的。如果您使用的是 3.x 版本,那么您不需要任何此类版本。如果您使用 4.x或更高,则适用于您。如果您使用 5.x ,则会有更多适用的规则。就像我说的那样,我正在写博客文章,但是这个白名单的东西是如此繁重,我需要说出来。
以下是您需要开始使用的链接。
这里有更多解释:
Timeout AJAX Requests Cordova 5
此外,您可以阅读Top Mistakes by Developers new to Cordova/Phonegap
的#10如果您很勇敢,可以在Cordova/Phonegap the white-list system
阅读 * RAW * 备注答案 4 :(得分:0)
window.open似乎无法使用回调方法。 (也许这是一个浏览器限制?)这可能不是OP的问题,但我希望知识可以帮助某人。