2016-04-19 7 views
1

Ich baue derzeit eine ionische Hybrid-Anwendung.Abrufen von Daten von einem inappbrowser

Leider habe ich Schwierigkeiten beim Zugriff auf die Antwortdaten der Anfrage während des Facebook-Anmeldeprozesses.

Wir wollen Daten von einem inappbrowser abrufen und verwenden Cordova's inappbrowser für einen Rückruf. Leider können wir nicht. Was ist der beste Weg, dies zu erreichen?

function InAppBrowser($scope, $cordovaInAppBrowser, $rootScope, $http, $window) { 

    var durr; 

    $scope.facebook = facebook; 
    $scope.foobar = foobar; 

    function facebook() { 

     var options = { 
      location: 'no', 
      clearcache: 'yes', 
      toolbar: 'no' 
     }; 

     durr = $cordovaInAppBrowser.open('https://www.facebook.com/dialog/oauth?scope=email,public_profile,user_friends,user_likes,user_photos,user_posts&client_id={client_id}&redirect_uri={callback_url}', '_blank', options) 
     .then(function(e) { 
      console.log(e); 
     }) 
     .catch(function(e) { 
      console.log(e); 
     }); 

     $rootScope.$on('$cordovaInAppBrowser:loadstop', function(e, event) { 
      $cordovaInAppBrowser.executeScript(
      { code: "localStorage.setItem('hurr', document.body.innerHTML)" },  
      function(data) { 
       console.log(data); 
      }); 
     }); 
    } 

    function foobar() { 
     console.log(durr); 
     // console.log(durr.localStorage.getItem('hurr')); 
    } 
} 

Antwort

2

Ich benutze das nicht für Facebook aber das Plugin Oauth. Dieses Plugin verwendet InAppBrowser: "https://github.com/nraboy/ng-cordova-oauth/blob/master/README.md". Es ist sehr einfach zu benutzen.

$cordovaOauth.facebook("Your client id", "scope", "options").then(function (result) { 
      Console.log(JSON.stringify(result); 
      // Get the information about the user's account 
      // See more at https://developers.facebook.com/docs/graph-api/reference/v2.2/user 
      $http.get("https://graph.facebook.com/v2.2/me", { 
      params: { 
       access_token: "your token", 
       fields: "id,last_name,first_name,gender,picture,birthday,location,email", 
       format: "json" 
      } 
      }).then(function (result) { 
      /** your code **/ 
      }