Inappbrowser回调

Faz*_*zil 3 facebook sencha-touch-2 cordova inappbrowser

我尝试使用inappbrowser登录facebook后回电话.但它无法检查电子邮件,名称等.这是我的代码

Inappbrowser电话

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)
     });
}
Run Code Online (Sandbox Code Playgroud)

检查回叫的方法

  function facebookLoc(loc){
     if (loc.indexOf("http://www.fastabuy.com/index.php?") > -1){
       alert(loc.indexOf)
     }
  }
Run Code Online (Sandbox Code Playgroud)

如何检查url何时loc.indexOf>-1关闭inappbrowser.请帮我解决这个问题.

Vis*_*swa 7

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();
   }
}
Run Code Online (Sandbox Code Playgroud)