Phonegap 3.0 InAppBrowser - 无法让用户关闭

时间:2013-10-15 17:44:13

标签: plugins cordova inappbrowser

我的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 -

非常感谢任何帮助!

4 个答案:

答案 0 :(得分:4)

您的语法看起来没问题,但请试试这些代码段:

Pure JavaScript:

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

HTML + JavaScript:

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

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

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

使用Cordova:cordova plugins

使用PhoneGap:phonegap local plugin list

您也可以转到桌面,导航到项目中的“plugins”文件夹,并检查是否有名为“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

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

答案 1 :(得分:2)

如果您使用PhoneGap Build,则需要使用不同的语法,即(请参阅plugin info):

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

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

请注意,如果您自己构建(在计算机上本地),则可能无法正常工作。如果您在当地建造,请使用wicketyjarjar的说明。

答案 2 :(得分:1)

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
    });
}

答案 3 :(得分:0)

我遇到了同样的问题。在我的情况下,它是由忘记包含cordova.js脚本引起的。

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