我希望这是一个非常容易回答的问题,因为我似乎非常接近于让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文件复制到插件文件夹。
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元素。但是,我只是看到“正在加载......”和一个微调器,而不是加载谷歌的主页。
检查控制台时,这是我得到的信息:
2013-05-15 06:01:34.934 HelloWorld [23234:c07]查看确实加载了 2013-05-15 06:01:34.936 HelloWorld [23234:c07]开放网址:无效
感觉很亲密!但无论出于何种原因,URL无效?不确定我是否错过了一个步骤,或者我是否在设置过程中做错了什么。我可以在模拟器中使用Safari来提升谷歌,所以我知道这不是连接问题。
非常感谢任何帮助或见解。我已经尝试过寻找解决方案,但还没有找到任何解决方案。鉴于我与此有多接近,似乎我忽略了一些非常小的东西?
干杯!
答案 0 :(得分:4)
你应该使用2.3.0中引入的phonegap标准的InAppBrowser插件 例如:
var ref = window.open('http://apache.org', '_blank', 'location=yes');
详细信息,请访问phonegap docs here
答案 1 :(得分: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项目中的Plugins文件夹中来设置Xcode中的目标:
将ChildBrowser.js文件复制到www文件夹
转到Cordova.plist&gt;展开插件密钥&gt;按加号(+)符号将ChildBrowserCommand添加为Key,键入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>