2012-01-29 18 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 
    } 
}();