【问题标题】:Open external links in Phonegap Build App (iOS/Android)在 Phonegap Build App (iOS/Android) 中打开外部链接
【发布时间】:2014-06-05 19:46:02
【问题描述】:

我正在使用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');">

这对我不起作用,请有人帮助我。谢谢!

【问题讨论】:

    标签: cordova phonegap-plugins phonegap-build inappbrowser


    【解决方案1】:

    在我将使用 InAppBrowser 的所有页面中,我的问题的解决方案是 include phonegap.js file 到我的 &lt;head&gt;&lt;script src="phonegap.js"&gt;&lt;/script&gt;

    我要稍微解释一下,为什么第一次使用这个解决方案对我(也许你也是)来说似乎不合逻辑,但后来我尝试了,它奏效了。

    这就是Phonegap 在他的plugin documentation 部分所说的:

    "如果插件使用js-module 元素来指示cordova 加载插件javascript,则无需&lt;script&gt; 引用来加载插件。核心cordova 插件就是这种情况强>”

    InAppBrowser 是一个核心的cordova 插件。但是由于某些奇怪的原因,在您包含 phonegap.js 文件之前(至少在 0.3.3 版本中)才能正常工作。

    注意:我发现了一个错误。有人说你必须包含 3 个文件:phonegap.jscordova.jscordova_plugins.js。但是当我包含这 3 个文件时,我的应用在 iOS 7 中运行良好,但在 iOS 6 中忽略了插件的使用(使用:Cordova 3.3.0 + Phonegap Build + InAppBrowser 0.3.3)。

    【讨论】:

      【解决方案2】:

      我需要做两件事才能让它在 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();
          }
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-05-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-10
        相关资源
        最近更新 更多