3

我正在使用 sencha touch + phonegap 3.0 构建一个 android 应用程序,要求在外部浏览器中打开一些 url。对于 Ios 正在使用 Ext.device.Device.openURL(url),并且工作正常。但是在android中,当我点击链接时,它会在我的appview中打开..

我试过的是

window.open(url, '_system', 'location=no'); // not worked still opens the in app view

window.open(alltaskurl,  '_blank', 'location=yes'); // not worked opens in app view 

然后我安装了 InAppBrowser phoneGap 插件并尝试更改我的 config.xml 文件

   <feature name="InAppBrowser">
        <param name="android-package" value="org.apache.cordova.InAppBrowser" />
    </feature>

window.open('http://apache.org', '_blank', 'location=yes'); // not worked as well 

我不知道该怎么办,我花了很多时间来解决这个问题,请帮助我..提前谢谢

4

3 回答 3

2

安装后InAppBrowser使用:

window.open(url, '_system');
于 2013-11-13T12:07:14.970 回答
2

谢谢迪比什..你让我走上了正轨。我正在使用一个库,它做了一些自己的href,所以为了避免弄乱那个库,我这样做了:

window.onclick = clickEvent;

function clickEvent(e){
    e = e || window.event;
    var t = e.target || e.srcElement
    if ( t.name || t.href ){
       if( typeof t.href == "string" && t.href.substr(0,4) == 'http' ){
           if( t.attributes.href.value !== "#" ){
               window.open(t.href, '_system', 'location=yes');
           }
           return false; // no further action for this click
       }
    }
    return true; // process click as normal
}

编辑:使用 window.open() 而不是 Android 特定的 navigator.app.loadUrl() 。我还必须清除 href="#" 的出现。

于 2013-12-03T10:28:56.070 回答
1

我用下面的代码做到了这一点

 navigator.app.loadUrl(url, {openExternal: true});

我从煎茶论坛之一得到它

于 2013-11-13T12:22:04.857 回答