2012-01-29 46 views
1

基本上我在iOS上使用ChildBrowser,它的工作原理几乎完美。问题是onLocationChange,onClose和onOpenExternal不起作用,对于我的生活我无法弄清楚为什么。ChildBrowser onLocationChange无法正常工作

任何帮助,将不胜感激

<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等。

回答

0

拿出root.onlocationChange,不需要那个。

0

封装locChangedonCloseBrowseronOpenExternal为主要功能,以做出正确的来电,因为当childbrowser打开it's不具备的locChanged 范围例如:

var facebook = function() { 
    locChanged = funciton() { 
     //your code here 
    } 
    return { 
     "init": init, 
     "locChanged": locChanged, 
     "onCloseBrowser": onCloseBrowser, 
     "onOpenExternal": onOpenExternal 
    } 
}();