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.onLocationChangeectを試しました。

4

2 に答える 2

0

locChangedonCloseBrowser、をメイン関数にカプセル化onOpenExternalして正しい呼び出しを行います。これ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 に答える
0

root.onlocationChange を取り出します。その必要はありません。

于 2012-01-29T19:07:54.430 に答える