Android 在应用浏览器中是否有类似于ChildBrowser中的PhoneGap的locationChange equalive
我正在尝试在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的成功/失败以及成功是否获取令牌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中有正确的代码
谢谢你的帮助 以下是我如何使用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);
我试图从我们的结构中只提取相关的部分,所以希望这样做是有意义的