基本上,我在iOS上使用的是ChildBrowser,它几乎可以完美地工作。问题是onLocationChange,onClose和onOpenExternal都不能工作,我也不知道为什么。
任何帮助都将不胜感激
<script type="text/javascript" charset="utf-8">
var cb;
function onBodyLoad()
{
document.addEventListener("deviceready",onDeviceReady,false);
}
/* PhoneGap has been initialized and is ready to roll */
function onDeviceReady()
{
console.log("Device Ready");
cb = ChildBrowser.install();
}
function openChildBrowser(url)
{
console.log("New Url"+url);
try {
cb.showWebPage(url);
cb.onLocationChange = function(loc){ root.locChanged(loc); };
cb.onClose = function(){root.onCloseBrowser()};
cb.onOpenExternal = function(){root.onOpenExternal();};
}
catch (err)
{
alert(err);
}
}
function onCloseBrowser()
{
console.log("closed");
alert("In index.html child browser closed");
}
function locChanged(loc)
{
console.log("new loc:"+loc);
childBrowser.close();
alert("In index.html new loc = " + loc);
}
function onOpenExternal()
{
console.log("new loc:");
alert("In index.html onOpenExternal");
}
</script>我尝试过window.plugins.childBrowser.onLocationChange等。
发布于 2012-01-30 03:07:54
把root.onlocationChange拿出来,不需要那个。
发布于 2014-10-15 18:48:22
将locChanged、onCloseBrowser、onOpenExternal封装到一个main函数中以进行正确的调用,因为childbrowser在打开时不具有locChanged的作用域,例如:
var facebook = function() {
locChanged = funciton() {
//your code here
}
return {
"init": init,
"locChanged": locChanged,
"onCloseBrowser": onCloseBrowser,
"onOpenExternal": onOpenExternal
}
}();https://stackoverflow.com/questions/9055503
复制相似问题