【问题标题】:Open external url in Ionicframework(Phonegap)在 Ionicframework(Phonegap) 中打开外部 url
【发布时间】:2015-04-12 17:44:13
【问题描述】:

我尝试在 ionicframework 中调用本机浏览器以打开没有插件的 url。

代码:

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

其实app在Android中可以调用浏览器,但是在ios中,它会替换当前app的view,而不是打开浏览器。

请提出建议。

【问题讨论】:

标签: javascript ios cordova ionic-framework


【解决方案1】:

你只需要做这样的事情,看起来你的设备还没有准备好:- 请使用以下给定函数(需要 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');
    }
}

下面是window.open函数的一些细节

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

目标:第二个参数可以是:

_self:如果 URL 在白名单中,则在 Cordova WebView 中打开,否则在 InAppBrowser 中打开。

_blank:在 InAppBrowser 中打开。

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

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

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

位置: 关闭按钮说明: 清除缓存: 清除会话缓存:

【讨论】:

  • 这种方式必须添加插件inappbrowser,我一直在添加插件解决这个问题,可能没有办法用原生js代码实现。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-10
相关资源
最近更新 更多