所以我在Xcode中为我的phonegap应用程序设置了Child Browser插件,并且遇到了一些问题。首先,为了确保在Xcode中正确构造它,我的插件文件夹中包含所有本机文件,并且ChildBrowser.bundle
包含图标。
现在对于html方面,我的头文件中有cordova.js
和childbrowser.js
个文件,后面跟着这个<
<script type="text/javascript">
function onDeviceReady() {
var root = this;
cb = window.plugins.childBrowser;
if(cb != null) {
cb.onLocationChange = function(loc){ root.locChanged(loc); };
cb.onClose = function(){root.onCloseBrowser(); };
cb.onOpenExternal = function(){root.onOpenExternal(); }
}
}
function onCloseBrowser() {
console.log("onCloseBrowser!");
}
function locChanged(loc) {
console.log("locChanged!");
}
function onOpenExternal() {
alert("onOpenExternal!");
}
</script>
然后,对于我的<a>
标记,我使用了github示例中使用的onClick事件Here
<a onclick="childBrowser.showWebPage('http://google.com');" href="#">Test</a>
但是当我在模拟器中尝试它时,没有真正发生任何事情,并且consol日志甚至没有显示任何活动。我是这样做的还是什么?任何帮助表示赞赏。我正在使用phonegap 2.6.0
答案 0 :(得分:4)
这将有助于您添加子浏览器。
https://github.com/phonegap/phonegap-plugins/tree/master/iOS/ChildBrowser
以及Installing Cordova Plugins with Phonegap - no Cordova.plist
我通过链接上方成功整合了它,下面是步骤。
1)复制“ChildBrowser”中的所有文件,并将其粘贴到PhoneGap 2.6.0 Project的“Plugin”文件夹中。
2)从“插件”添加框架,如下图所示。
3)将“ClildBrowser.js”包含在“www / index.html”
中4)从Xcode中,将文件添加到“插件”文件夹中。
5)遵循https://github.com/phonegap/phonegap-plugins/tree/master/iOS/ChildBrowser
中提到的代码6)享受。
答案 1 :(得分:2)
更新:如果您使用Phongap 2.0或更高版本,则不需要外部插件。 Phonegape 2.0及以上版本附带InAppBrowser,它是ChildBrowser但非常有效且省时,你不需要经历所有这些痛苦的过程。设置InAppBrowser
步骤进行:
1- config.xml
添加:
<feature name="InAppBrowser">
<param name="ios-package" value="CDVInAppBrowser" />
</feature>
2-创建函数并在“OnDeviceReady()
内部或”
function externalWeb(url) {
console.log("Initializing InAppBrowswer");
var ref = window.open(url, '_blank', 'location=yes', 'EnableViewPortScale=yes');
ref.addEventListener('loadstart', function(event) {
console.log("start loading external link :" + event.url);
});
ref.addEventListener('loadstop', function(event) {
console.log("External link lodaded without any problem : " + event.url);
});
ref.addEventListener('loaderror', function(event) {
console.log("There is error in loading External link :" + event.url);
alert('error: ' + event.message);
});
ref.addEventListener('exit', function(event) {
console.log("External link is closed now :" + event.type + "link :" + event.url);
});
}
3-现在打开链接调用上面的函数,URL为字符串
var targetURL="http://www.google.co.uk";
externalWeb(targetURL);
有关详细信息,请访问InAppBrowser
链接答案 2 :(得分:0)
<feature name="ChildBrowserCommand">
<param name="ios-package" value="ChildBrowserCommand" />
</feature>
请记住获取最新的插件代码,因为phonegap已经改变了参数传递给本机.m文件的方式 例如:
- (void)showWebPage:(CDVInvokedUrlCommand*)command
和.h文件
@property (nonatomic, strong) ChildBrowserViewController* childBrowser;
-(void)showWebPage:(CDVInvokedUrlCommand*)command;