ios phonegap 子浏览器插件设置
Posted
技术标签:
【中文标题】ios phonegap 子浏览器插件设置【英文标题】:ios phonegap Child Browser plugin setup 【发布时间】:2013-04-30 15:40:41 【问题描述】:所以我在 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>
但是当我在模拟器中尝试时,什么都没有发生,并且控制台日志甚至没有显示任何活动。我这样做是对的还是什么?任何帮助表示赞赏。我正在使用 phonegap 2.6.0
【问题讨论】:
【参考方案1】:这将帮助您添加子浏览器。
https://github.com/phonegap/phonegap-plugins/tree/master/ios/ChildBrowser
还有Installing Cordova Plugins with Phonegap - no Cordova.plist
我通过上面的链接成功集成,下面是步骤。
1) 将“ChildBrowser”中的所有文件复制并粘贴到PhoneGap 2.6.0项目的“Plugin”文件夹中。
2) 从“插件”添加框架,如下图所示。
3) 将“ClildBrowser.js”包含到“www/index.html”中
4) 从 Xcode 中,将文件添加到“插件”文件夹中。
5) 按照https://github.com/phonegap/phonegap-plugins/tree/master/iOS/ChildBrowser中提到的代码进行操作
6) 享受。
【讨论】:
是的,按照您的步骤返回 github 以确保它是正确的 javascript 来启动它,但它仍然无法正常工作。我去点击链接,没有任何反应。但是感谢您的帮助 您好,我刚刚实现了。如果您愿意,我可以以任何方式为您提供帮助,以便您开始工作。同时我会在github上推送,以便您访问它。让我知道,如果有任何其他方式我可以提供帮助。 :) 嘿,谢谢你的提议。感谢您提供的所有帮助。你的 github 的链接是什么?【参考方案2】:更新:如果您使用 Phongap 2.0 或更高版本,则不需要外部插件。 Phonegape 2.0 及更高版本带有 InAppBrowser,它是 ChildBrowser,但非常有效且节省时间,您无需经历所有这些痛苦的过程。设置 InAppBrowser
步骤:
1- 在config.xml
添加:
<feature name="InAppBrowser">
<param name="ios-package" value="CDVInAppBrowser" />
</feature>
2- 创建函数并在 phonegap 在“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
【讨论】:
欢迎来到 Stack Overflow。请在您的答案中总结链接;这样,如果链接失效,答案也不会完全没用。【参考方案3】:<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;
【讨论】:
以上是关于ios phonegap 子浏览器插件设置的主要内容,如果未能解决你的问题,请参考以下文章
包含 Google Admob 插件时,Phonegap/Cordova 2.9 iOS 应用内浏览器未打开
在 Chrome 浏览器、iOS 和 Android 中使用 phonegap-plugin-push?
Cordova/Phonegap / iOS:错误:找不到插件“Plugin01”,或者不是 CDVP 插件。检查 config.xml 中的插件映射