ChildBrowser Phonegap不起作用。

3

在寻找适合在我的应用程序中打开浏览器的方法时,我发现了ChildBrowser,它似乎提供了我需要的一切。在跟随一些教程后,我似乎无法让插件正常工作。我已经编辑了我的PhoneGap.plist文件,将外部主机的值设置为“*”,我已经添加了ChildBrowserCommand插件,但每当我运行应用程序时,点击链接时什么也不会发生。我在文档头中有以下代码;

<script type="text/javascript">
    var childBrowser;

    function onBodyLoad ()
    {
        document.addEventListener("deviceready", onDeviceReady, false);
    }

    //Phonegap ready to go
    function onDeviceReady()
    {
        alert("PhoneGap is ready");
        childBrowser = ChildBrowser.install();
    }

    function openChildBrowser(url)
    {
        try {
            window.plugins.childBrowser.ShowWebPage(url);
            //childBrowser.showWebPage(url);
        }
        cathc(err)
        {
            alert(err);
        }
    }

</script>

我在phoneGap.js文件后面包含了ChildBrowser,但似乎无法运行,并且在控制台中没有错误日志记录。有人知道是什么问题或者至少可以指点我正确的方向吗?


我有一个测试项目,使用ChildBrowser和Facebook,您可以在此处查看参考资料:https://github.com/dhavaln/phonegap-facebook。 - dhaval
请确保在/res/xml/plugins.xml中定义了<plugin name="ChildBrowser" value="com.phonegap.plugins.childBrowser.ChildBrowser"/> - dhaval
感谢@dhaval的评论。我没有plugins.xml文件,这让我相信这可能是问题所在。然而,我没有/res/xml...文件夹。当我创建文件时,我应该将它放在www文件夹的根目录下吗? - JPK
Android项目从Eclipse中已经有了/res文件夹,您只需要创建/xml并复制所需的XML文件。 /res/xml放在项目的根目录下,而不是/www中。 - dhaval
@dvaval,我正在使用iOS项目。 - JPK
3个回答

3
这段代码对我有效。

<!DOCTYPE html>
<html>
<head>
    <title>My External Page</title>
    <meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1, maximum-scale=1.0"/>
    <meta name="format-detection" content="telephone=no"/>

    <!--iPhone on Safari Standalone mode-->
    <meta name="apple-mobile-web-app-capable" content="yes" />

    <!--Hide iPhone on Safari Native Top Status Bar-->
    <meta name="apple-mobile-web-app-status-bar-style" content="default" />
    <link rel="shortcut icon" href="favicon.ico" />

    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.css" />

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

    <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
    <script type="text/javascript" src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"></script>

    <script type="text/javascript">

        document.addEventListener("deviceready", loaded, false);

        function loaded()
        {
            if (console)
            {
                console.log("cordova loaded");
            }
        }

        function showExternalPage()
        {
            if (console)
            {
                console.log("in show pmt page");
            }

            Cordova.exec("ChildBrowserCommand.showWebPage", "http://www.google.com/" );
        }

        </script>

</head>

<body>

    <div data-role="page" id="myExternalLauncherPage" data-theme="a">

        <div data-role="content">

            <ul data-role="listview" data-inset="true">

                <li>
                    <button type="submit" data-theme="b" id="launcherButton" onclick="showExternalPage()">Launch Google</button>
                </li>
            </ul>

        </div>

    </div>

</body>


1

我的伙伴为在PhoneGap Android项目这里添加ChildBrowser插件编写了一份逐步教程。


谢谢提供链接,但我正在尝试让它在iPhone / iPad上运行。 - JPK
好的,我已经为你的问题添加了一个iOS标签。祝你好运! - Paul Beusterien

0

在花费数小时/天查找许多混乱页面后,我终于在这个 博客页面 上找到了一组简明的说明。确保获取在这个GitHub页面上显示的最新代码。 我成功地让ChildBrowser插件与PhoneGap 1.5.0配合使用,并在运行在OSX 10.7.3的Xcode 4.3中测试了iOS 4和5。我发现的限制是它只能在横屏模式下工作。我现在正在追求一个解决方案来包括横向模式。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接