2015-02-12 74 views
2

我尝试在离子框架中调用本地浏览器以打开一个不带插件的URL。在Ionicframework(Phonegap)中打开外部URL

代码:

if(ionic.Platform.isAndroid()) { 
    navigator.app.loadUrl(url, {openExternal : true}); 
}else if(ionic.Platform.isIOS()) { 
    window.open(url, '_system'); 
} 

事实上,应用程序可以调用Android的浏览器,但在iOS中,它将取代目前的应用视图,而不是打开浏览器。

请建议。

+0

请参阅本http://stackoverflow.com/questions/2899699/uiwebview-open-links-in-safari – Amar1989 2015-02-12 07:26:11

回答

4

你只需要做这样的事情,看起来像你的设备还没有准备好: - 请使用如下功能(需要phonegap.js)

if(ionic.Platform.isIOS()) { 
{ 
    // Wait for Cordova to load 
    document.addEventListener('deviceready', onDeviceReady, false); 
    // Cordova is ready 
    function onDeviceReady() 
    { 
    // open URL in default web browser 
     var ref = window.open(encodeURI(url), '_system', 'location=yes'); 
    } 
} 

以下是关于窗口的一些细节.open函数

url:要加载的URL(字符串)。如果URL包含Unicode字符,则调用encodeURI()。 var ref = window.open(url,target,options);

目标:第二个参数可以如下:

_self:打开在科尔多瓦的WebView如果URL在白名单中,否则在InAppBrowser打开。

_blank:在InAppBrowser中打开。

_system:在系统的Web浏览器中打开。

选项:InAppBrowser的选项。可选,默认为:location = yes。 (字符串)

选项字符串不能包含任何空格,并且每个要素的名称/值对必须用逗号分隔。功能名称不区分大小写。所有的平台都支持以下值:

位置: closebuttoncaption: clearcache: clearsessioncache:

+1

这方式必须添加插件'inappbrowser',我已经添加了插件并解决了这个问题,也许有没有办法用原生js代码实现。非常感谢。 – kenticny 2015-02-12 08:04:48

相关问题