簡體   English   中英

window.location.href在phonegap應用程序中不起作用

[英]window.location.href doesn't work in phonegap app

出於某種奇怪的原因,我的Facebook連接在連接空白屏幕后消失了,但在建築物的我的應用程序中無法使用。

我的腳本可以在瀏覽器,BlackBerry 10 Webworks應用程序,BlackBerry Z10上的瀏覽器,Galaxy Tab,Playbook上運行,即使在計算機上也可以正常運行,但不能在自己的應用程序上運行。 我知道在BlackBerry 10上,您需要在瀏覽器中禁用該應用程序,我試過但沒有用。

<feature name="InAppBrowser">
  <param name="android-package" value="org.apache.cordova.InAppBrowser"/>
    </feature>

function fboauthstart() {
    var url = 'https://graph.facebook.com/oauth/access_token?client_id=' + facebookOptions.clientId + '&redirect_uri=' + facebookOptions.redirectUri + '&client_secret=' + facebookOptions.clientSecret + '&code=' + authCode;

    $.ajax({
        type: 'GET',
        url: url,
        success: function(data) {
            var response = data;
            var response = response.split('&');
            var theAccessToken = response[0].split('=');
            window.accessToken = theAccessToken[1];

      fbfirstlinkcheck();
         }
        });
}



function startOAuth() {
    var url = 'https://www.facebook.com/dialog/oauth?client_id=' + facebookOptions.clientId + '&redirect_uri=' + facebookOptions.redirectUri + '&scope=email,read_friendlists,user_online_presence,publish_stream,user_birthday,user_location';
    childWindow = window.open(url, '_blank');
    window.int = self.setInterval(function() {
        var currentURL = childWindow.window.location.href;
        var callbackURL = facebookOptions.redirectUri;
        var inCallback = currentURL.indexOf(callbackURL);
        if (inCallback == 0) {
            window.clearInterval(int)
            var code = childWindow.window.location.search;
            code = code.split('code=');
            code = code[1];
            window.authCode = code;
            childWindow.close();

            setTimeout(function() {


            fboauthstart();




            }, 1000);
        }
    }, 1000);
}

我嘗試將href替換為assign,replace,但也無法正常運行,然后在計算機上不再正常運行。

我試圖將window.open更改為window.location.assign,但這也沒有用。 有人對此有經驗嗎?

你需要用這個

window.location.replace("link.html");

InAppBrowser插件可“轉換” javascript window.open函數。 除了InAppWindow,它將不再返回Window對象。

您仍然可以輪詢子窗口,但是可以執行遠程腳本:

var win = window.open( "http://...." );

            win.addEventListener( "loadstop", function() {
                var loop = setInterval(function() {
                    win.executeScript(
                        {
                            code: "window.myData"
                        },
                        function( values ) {
                            alert(values[0]);
                        }
                    );
                });
            });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM