window.location.href 在 PhoneGap 应用程序中不起作用



出于某种奇怪的原因,我的Facebook Connect在我的应用程序中不起作用,将其连接到空白屏幕并死亡后。

我的脚本在浏览器,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,替换但也无法使用,然后在计算机上不再起作用。

我尝试将窗口更改为window.location.shasgign,但也无效。有人有这个经验吗?

您需要使用此

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

inappbrowser插件"转换" javascript窗口。它不会再返回窗口对象,而是indappwindow。

您仍然可以通过执行远程脚本进行轮询儿童窗口:

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

相关内容

最新更新