我尝试使用 inappbrowser 登录 facebook 后回拨。但它无法检查电子邮件、姓名等。这是我的代码
Inapp浏览器调用
function onDeviceReady(){
var my_client_id = FBkey,
my_redirect_uri = "http://www.fastabuy.com/index.php",
my_type = "user_agent",
my_display = "touch";
var authorize_url = FBgraphapiurl+"/oauth/authorize?";
authorize_url += "client_id=" + my_client_id;
authorize_url += "&redirect_uri=" + my_redirect_uri;
authorize_url += "&display=" + my_display;
authorize_url += "&scope=publish_stream,email,user_likes";
isfir = "true";
var ref = window.open(authorize_url, '_blank', 'location=yes');
ref.addEventListener('loadstop', function facebookLocChanged() {
facebookLoc(my_redirect_uri)
});
}
检查回调方法
function facebookLoc(loc){
if (loc.indexOf("http://www.fastabuy.com/index.php?") > -1){
alert(loc.indexOf)
}
}
如何检查 url 何时loc.indexOf>-1
关闭 inappbrowser。请帮我解决这个问题。
1)你需要使用loadstart
InAppBrowser 中用于检查重定向页面的事件。
2)登录成功后使用close
关闭 InAppBrowser 的方法。
3)当你打电话时facebookLoc
回调中的函数,你应该注意范围,我正在使用me
变量来解决这个问题。
onFacebookLogin: function() {
var me = this;
var appInBrowser = window.open(authorize_url, '_blank', 'location=yes');
appInBrowser.addEventListener('loadstart', function(event) {
me.facebookLoc(event.url,appInBrowser);
});
}
facebookLoc : function(loc,appInBrowser) {
if (loc.indexOf("www.facebook.com/connect/login_success.html") > -1){
alert('Login success');
appInBrowser.close();
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)