Android 在应用浏览器中是否有类似于ChildBrowser中的PhoneGap的locationChange equalive

Android 在应用浏览器中是否有类似于ChildBrowser中的PhoneGap的locationChange equalive,android,ios,cordova,childbrowser,inappbrowser,Android,Ios,Cordova,Childbrowser,Inappbrowser,我正在尝试在Android和iOS上使用GoogleOAuth2进行GoogleDrive身份验证。我有一个在Android上使用ChildBrowser的解决方案,但在iOS上不起作用。PhoneGap构建支持建议我使用InAppBrowser,因为ChildBrowser已贬值 我可以让iOS和Android都提示我的用户输入ID/PW,然后在AppBrowser中显示“允许访问”按钮,让Googl可以访问硬盘。在Android上点击“允许访问”按钮会出现页面不可用错误,url中有正确的代码

我正在尝试在Android和iOS上使用GoogleOAuth2进行GoogleDrive身份验证。我有一个在Android上使用ChildBrowser的解决方案,但在iOS上不起作用。PhoneGap构建支持建议我使用InAppBrowser,因为ChildBrowser已贬值

我可以让iOS和Android都提示我的用户输入ID/PW,然后在AppBrowser中显示“允许访问”按钮,让Googl可以访问硬盘。在Android上点击“允许访问”按钮会出现页面不可用错误,url中有正确的代码和OAuth标记。使用childbrowser时,正是此更改事件允许您检查代码4并获取令牌。InAppBrowser只有LoadStart、LoadStop和Exit事件

我如何检查Google返回URL的成功/失败以及成功是否获取令牌


谢谢你的帮助

以下是我如何使用InApp浏览器进行Facebook身份验证。因为您只是想从url中获取一个值,所以它的工作方式应该是相同的:

var fb = {
    id: '...'
    ,secret: '...'
    ,namespace: '...'
    ,redirect: '...'
    ,display: 'touch'
    ,scope: ['publish_actions']

    ,windowRef: null
    ,code: null
    ,onLoadEvent: function(event){
        var url = event.url;
        console.log(url);

        //once we've been redirected to this domain, fb's job is done
        if (/my.domain.com/.test(url)){

            if (/code=/.test(url)){
                //auth done
                var code = url.match(/code=([^\&]+)/)
                if (code) code = code[1];
                window.fb.code = code;
                window.fb.windowRef.close();
            }else if (/error_description=/.test(url)){
                //login unsuccessful
                var error = url.match(/error_description=([^\&]+)/);
                if (error) error = error[1].replace(/[^A-Z0-9 ]/gi, " ");
                console.error("facebook login failed: " + error);
                window.fb.code = null;
                window.fb.windowRef.close();
            }

        }
    }
};

var authUrl = "https://graph.facebook.com/oauth/authorize?"
            + "client_id=" + fb.id
            + "&redirect_uri=" + encodeURI(fb.redirect)
            + "&display=" + fb.display
            + "&scope=" + fb.scope.join('%2C');

fb.windowRef = window.open(authUrl, '_blank', loginPopupOptions);

//no reason we can't use the same function twice...
fb.windowRef.addEventListener('loadstart', fb.onLoadEvent);
fb.windowRef.addEventListener('loadstop', fb.onLoadEvent);
我试图从我们的结构中只提取相关的部分,所以希望这样做是有意义的