4

我希望这是一个很容易回答的问题,因为我似乎非常接近让 ChildBrowser 插件工作。我正在使用 Xcode 4.6.2 和 Cordova 2.7.0,试图创建一个运行通用 ChildBrowser 示例的基本 iPhone 应用程序。

概述

让我回顾一下到目前为止的步骤:

1) 从此处下载 ChildBrowser 插件:https
://github.com/phonegap/phonegap-plugins/tree/master/iOS/ChildBrowser 2) 将所有 .xib、.h 和 .m 文件复制到Plugins文件夹。
3) 将 ChildBrowser.js 和 index.html 文件复制到www文件夹。
4) 将 ChildBrowser.bundle 复制到Frameworks文件夹。
5)修改config.xml中的plugins节点,使其包括:

 <plugin name="ChildBrowserCommand" value="ChildBrowserCommand" />

6) 在运行默认的 ChildBrowser 示例时,我看到了一个控制台警告,指出按钮代码已被弃用。所以我改变了这一行:

<button onclick="cb.showWebPage('http://google.com');">Click to open ChildBrowser!</button>

对此:

<button onclick="cordova.exec(null, null, 'ChildBrowserCommand', 'showWebPage',['http://www.google.com']);">Click to open ChildBrowser!</button>

概括

我能够毫无问题地构建应用程序,当我使用 iOS 模拟器 (iPhone 6.1) 对其进行测试时,它似乎几乎可以工作。单击该按钮会触发 ChildBrowser,我可以在屏幕底部看到所有 UI 元素。但我没有加载 Google 的主页,而是看到“正在加载...”和一个微调器。

检查控制台时,这是我得到的信息:

2013-05-15 06:01:34.934 HelloWorld[23234:c07] 查看确实加载了
2013-05-15 06:01:34.936 HelloWorld[23234:c07] 打开网址:无效

感觉很亲近!但无论出于何种原因,该 URL 无效?不确定我是否错过了一个步骤,或者我在设置过程中是否做错了什么。我可以在模拟器中使用 Safari 很好地启动 Google,所以我知道这不是连接问题。

非常感谢任何帮助或见解。我已经尝试过到处寻找解决方案,但还没有找到任何东西。鉴于我对此有多接近,似乎我忽略了一些非常小的东西?

干杯!

4

2 回答 2

4

您应该使用 2.3.0 示例中引入的 phonegap 标配的 InAppBrowser 插件:

var ref = window.open('http://apache.org', '_blank', 'location=yes');

phonegap 文档的详细信息在这里

于 2013-05-16T05:43:38.843 回答
0

虽然 ChildBrowser 不再被使用/支持。我的博客上有一个关于如何安装子浏览器的教程(https://neilbo21.wordpress.com/2013/10/07/how-i-make-web-apps-for-ios-phonegap-xcode-bonus- childbrowser-video/ )

因此,您需要从https://github.com/phonegap/phonegap-plugins/tree/master/iOS/ChildBrowser下载 ChildBrowser 插件文件。将文件复制到插件文件夹中,并确保通过将项目拖到 Xcode 项目中的插件文件夹中来设置 Xcode 中的目标

  • ChildBrowser.bundle
  • ChildBrowserCommand.h
  • ChildBrowserCommand.m
  • ChildBrowserViewController.h
  • ChildBrowserViewController.m
  • ChildBrowserViewController.xib

将 ChildBrowser.js 文件复制到您的 www 文件夹中

转到您的 Cordova.plist > 展开插件键 > 按加号 (+) 符号将 ChildBrowserCommand 添加为 Key,Type 作为 String,Value 作为 ChildBrowserCommand。

在 index.html 中引用 ChildBrowser.js

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

调用 ChildBrowser 函数

<script type="text/javascript">


        //ChildBrowser js calls
        document.addEventListener("deviceready", loaded, false);

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

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

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

</script>

现在您已准备好调用将在 ChildBrowser 中打开 Google 的 javascript 函数。

<a href="#" onclick="openGoogle();">Search Google</a>
于 2013-10-09T04:05:06.337 回答