【问题标题】:Phonegap 3.0 InAppBrowser - Provides no way for user to closePhonegap 3.0 InAppBrowser - 用户无法关闭
【发布时间】:2013-10-15 17:44:12
【问题描述】:

我的应用程序中的 inApBrowser 工作得很好……但是,我升级了一些东西,现在它打开了 URL,没有任何关闭它的方法。您必须终止该应用程序。

我已经尝试了很多变体:window.open('http://cnn.com','_blank','location=yes,toolbar=yes');

myconfig.xml 有:

<feature name="InAppBrowser">
    <param name="ios-package" value="CDVInAppBrowser" />
</feature>

我没有收到任何错误...页面打开...但无法关闭并返回应用程序。我见过很多人为 URL 识别和关闭窗口提供解决方案......但我需要 childBrowser 插件方法......用户可以在他/她完成查看页面后关闭窗口。

Phonegap 3.0 - jQueryMobile 1.2 - IOS 7.0.2 - xCode 5.0 -

任何帮助将不胜感激!

【问题讨论】:

    标签: plugins cordova inappbrowser


    【解决方案1】:

    你的语法看起来不错,但试试这些代码 sn-ps:

    纯 JavaScript:

    var ref = window.open('http://cnn.com', '_blank', 'location=yes,toolbar=yes');

    HTML + JavaScript:

    &lt;a href="#" onclick="var ref = window.open('http://cnn.com', '_blank', 'location=yes,toolbar=yes');"&gt;CNN Link&lt;/a&gt;

    另外,请检查您是否已正确安装 InAppBrowser 插件(PhoneGap/Cordova 3.0+ 需要通过命令行单独安装)。您的 config.xml 文件看起来是正确的,但请确保插件的其余部分已正确安装。

    您可以使用以下命令列出项目中所有已安装的插件...

    使用 Cordova:cordova plugins

    使用PhoneGap:phonegap local plugin list

    您也可以直接转到您的桌面,导航到项目中的“插件”文件夹,并检查是否有一个名为“org.apache.cordova.inappbrowser”或“org.apache.cordova.core.inappbrowser”的文件夹' 里面。

    安装 InAppBrowser 插件(如有必要)...

    使用 Cordova:cordova plugin add org.apache.cordova.inappbrowser

    使用PhoneGap:phonegap local plugin add org.apache.cordova.inappbrowser

    根据您的描述,您的页面听起来像是在应用的 web 视图中打开,而不是在 InAppBrowser 窗口中打开。如果您使用'_self' 而不是'_blank',这就是您通常会得到的行为。希望这里有一些东西可以帮助解决它。

    【讨论】:

      【解决方案2】:

      如果您使用的是 PhoneGap Build,那么您需要使用不同的语法,即(参见 plugin info):

      <gap:plugin name="org.apache.cordova.inappbrowser" />
      

      另见PGB plugin repository。它现在似乎是最新的。您可以看到 simple test application 的工作版本。

      请注意,如果您自己构建(在您的计算机上本地),这可能不起作用。如果您在本地构建,请使用 wicketyjarjar 的说明。

      【讨论】:

        【解决方案3】:

        inAppBrowser 不适用于 Phonegap 3.0.0,必须在 config.xml 中更改它以使其在 ios 和 Android 上都可以使用:

        <plugin name="inAppBrowser">
        

        <gap:plugin name="org.apache.cordova.inappbrowser" />
        

        此外,如果您想包含 emailcomposer,请在 config.xml 中使用以下行

        <gap:plugin name="de.appplant.cordova.plugin.email-composer" />
        

        并在 Javascript 文件中添加以下行:

        var ops = {
            callback: function (result) {
                navigator.notification.alert(result);
            },
            subject: "Look at this photo",
            body: "Take a look at <b>this</b>:",
            toRecipients: ["example@email.com", "johndoe@email.org"],
            ccRecipients: [],
            bccRecipients: [],
            isHTML: true,
            attachments: ["_complete_path/image.png"]
        }
        
        function mail(name, url) {
            window.plugin.email.open({
                to: [],
                cc: [],
                bcc: [],
                subject: name,
                body: url,
                isHtml: true
            });
        }
        

        【讨论】:

          【解决方案4】:

          我遇到了同样的问题。就我而言,这是由于忘记包含 cordova.js 脚本造成的。

          <script type="text/javascript" src="cordova.js"></script>
          

          【讨论】:

          • 我认为这不是原因。 user2883611说页面打开了,怎么没有加载cordova.js?
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-11-26
          • 2019-10-08
          • 2013-08-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多