1

基本上我在 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 等。

4

2 回答 2

0

取出 root.onlocationChange,不需要它。

于 2012-01-29T19:07:54.430 回答
0

locChanged将, onCloseBrowser,封装onOpenExternal到一个 main 函数中以进行正确的调用,因为childbrowser当它打开时没有范围,locChanged 例如:

var facebook = function() {
    locChanged = funciton() {
        //your code here
    }
    return {
        "init": init,
        "locChanged": locChanged,
        "onCloseBrowser": onCloseBrowser,
        "onOpenExternal": onOpenExternal
    }
}();
于 2014-10-15T10:48:21.650 回答