我使用 Phonegap Build 部署mi Apps,我使用 Cordova 3.3.0 版本。
我希望在原生浏览器中打开外部链接( Android / iOS )。我尝试使用Cordova的 InAppBrowser插件,但它对我不起作用。打开链接,但在应用程序内部没有后退按钮...:/
我已经看过像Include phonegap.js file这样的答案(但是当使用Phonegap Build部署时,你不必包含它,PGB为你做),或使用或using a function to open links + InAppBrowser Plugin,甚至是谁说这是固定的deploying locally,但我无法在本地部署,因为我的Mac不支持新版本的XCode和iOS SDK'第
这是我 config.xml 的相关代码:
<preference name="phonegap-version" value="3.3.0" />
<gap:plugin name="org.apache.cordova.inappbrowser" version="0.3.3" />
<feature name="InAppBrowser">
<param name="android-package" value="org.apache.cordova.inappbrowser.InAppBrowser" />
<param name="ios-package" value="CDVInAppBrowser" />
</feature>
<access origin="*" />
这是 JS功能我一直在尝试:
function abrirURL(url){
if(device.platform === 'Android') {
navigator.app.loadUrl(url, {openExternal:true});
} else {
window.open(url, '_system');
}
}
我试过的链接,从最基本到功能的使用:
<a href="http://www.example.com" target="_blank">Link</a>
<a href="#" onClick="abrirURL('http://www.example.com');">Link</a>
<a href="#" onClick="window.open('http://www.example.com', '_blank');">
<a href="#" onClick="window.open('http://www.example.com', '_system');">
这对我没什么用,有人请帮助我。谢谢!
答案 0 :(得分:1)
在我将使用InAppBrowser的所有页面中,我的<head>
问题的解决方案为include phonegap.js file:<script src="phonegap.js"></script>
我会稍微解释一下,为什么这个解决方案在第一时间对我来说似乎不合逻辑(也许你也是),但后来我尝试了它的确有效。
这就是他的plugin documentation部分中的Phonegap所说的内容:
“如果插件使用
js-module
元素指示cordova加载插件javascripts,则加载插件时不需要<script>
引用。核心就是这种情况cordova插件“
InAppBrowser是一个核心的cordova插件。但是出于某些奇怪的原因,在包含phonegap.js
文件(至少在0.3.3版本中)之前不起作用。
注意:我发现了一个错误。有些人说您必须包含3个文件:phonegap.js
,cordova.js
和cordova_plugins.js
。但是当我包含这3个文件时,我的应用程序在iOS 7中工作正常,但在iOS 6中忽略了插件的使用(使用:Cordova 3.3.0 + Phonegap Build + InAppBrowser 0.3.3)。
答案 1 :(得分:0)
我需要做两件事才能让它在3.7.0中运行。
config.xml中
<gap:plugin name="org.apache.cordova.inappbrowser" />
在HTML中标记
<a onclick="window.open(this.href,'_system','location=no');return false;" href="http://stackoverflow.com">
我实际上写了一个函数来处理这个,所以我的HTML将是正常的
$(document).on('click','a',function(e) {
if ($(this).attr('target') === '_blank') {
window.open($(this).attr('href'),'_system','location=no');
e.preventDefault();
}
});