2015-01-12 9 views
14

Sto cercando di aggiungere la connessione nativa alla mia app ionica.facebookConnectPlugin non è definito (ngCordova, app Ionic)

sto usando: - ionico - ngCordova - http://ngcordova.com/docs/plugins/facebook/

Questo è il mio codice:

angular.module('starter.controllers', ['ngCordova']) 

.config(function($cordovaFacebookProvider) { 
var appID = 123456789; 
var version = "v2.0"; // or leave blank and default is v2.0 
$cordovaFacebookProvider.browserInit(appID, version); 
}) 

che porta a questo errore>

Uncaught Error: [$injector:modulerr] Failed to instantiate module starter due to: 
Error: [$injector:modulerr] Failed to instantiate module starter.controllers due to: 
ReferenceError: facebookConnectPlugin is not defined 
at browserInit (http://localhost:8100/lib/ngCordova/dist/ng-cordova.js:1576:7) 
at http://localhost:8100/js/controllers.js:6:30 
at Object.invoke (http://localhost:8100/lib/ionic/js/ionic.bundle.js:11994:17) 
at runInvokeQueue (http://localhost:8100/lib/ionic/js/ionic.bundle.js:11900:35) 
at http://localhost:8100/lib/ionic/js/ionic.bundle.js:11909:11 
at forEach (http://localhost:8100/lib/ionic/js/ionic.bundle.js:8147:20) 
at loadModules (http://localhost:8100/lib/ionic/js/ionic.bundle.js:11890:5) 
at http://localhost:8100/lib/ionic/js/ionic.bundle.js:11907:40 
at forEach (http://localhost:8100/lib/ionic/js/ionic.bundle.js:8147:20) 
at loadModules (http://localhost:8100/lib/ionic/js/ionic.bundle.js:11890:5) 

provato un paio di cose ma senza alcun risultato positivo: - Quando lo costruisco e lo eseguo sul mio dispositivo applicazione visualizza uno schermo vuoto

  • provato il normale codice cordova js:

  • Modificato $ cordovaFacebookProvider a $ cordovaFacebook (sulla base di questa discussione: forum.ionicframework.com/t/unknown-provider -cordovaprovider/13305/3

  • E questo è un altro thread correlato, ma non mi aiuta pensato .. forum.ionicframework.com/t/does-ng-crodova-has-facebook-login/9163

Ho già un prototipo che funziona con l'autenticazione fb nel browser in-app. Ma voglio davvero avere una funzionalità di connessione fb nativa.

+0

è il plugin installato correttamente? eseguire 'ionica list' plug-in, o provare a reinstallare il plugin – devqon

+0

sembra che: com.phonegap.plugins.PushPlugin 2.4.0 "PushPlugin" com.phonegap.plugins.facebookconnect 0.11.0 "Facebook Connect" org .apache.cordova.camera 0.3.4 "Fotocamera" org.apache.cordova.console 0.2.12 "Console" org.apache.cordova.inappbrowser 0.5.5-dev "InAppBrowser" – colin

+0

Qualsiasi successo? Sono bloccato anche su questo problema. – AaronB

risposta

5

ho trovato un modo per risolvere questo problema.

Grazie a questa discussione: https://github.com/driftyco/ng-cordova/issues/446

e questo tutorial: https://github.com/Wizcorp/phonegap-facebook-plugin/blob/master/platforms/browser/README.md

primo passo: Non dimenticare il <div id="fb-root"></div> dopo ur corpo.

2 ° passo: ho aggiunto ai miei facebookConnectPlugin dipendenze Bower

Vedere la mia bower.json:

"dependencies": { 
    "angular-google-maps": "~2.0.13", 
    "google-map": "~0.4.1", 
    "facebook-connect-plugin": "https://cdn.rawgit.com/Wizcorp/phonegap-facebook-plugin/master/facebookConnectPlugin.js" 
} 

Vedere la mia app.config + codice per init:

app.config(function ($stateProvider, $urlRouterProvider, $ionicConfigProvider, $animateProvider, $httpProvider, $cordovaFacebookProvider) { 

var appID = 597135743751760; 
var version = "v2.0"; // or leave blank and default is v2.0 
$cordovaFacebookProvider.browserInit(appID, version); 

$ cordovaFacebookProvider chiama facebookConnectPlugin()

3a tappa: dopo aver cambiato thi s dipendenze, non dimenticare di chiamare l'aggiornamento di bower dalla tua CLI. bower update example

4a fase: includere il nuovo file facebookblablabla.js nel proprio index.html.

può essere

<script src='bower_components/facebook-connect-plugin/index.js'></script> 

Per me è stato

<script src='lib/facebook-connect-plugin/index.js'></script> 

5 ° passo: aggiungere nel OAuth valido campo URI reindirizzare al tuo Facebook App: http://static.ak.facebook.com/connect/xd_arbiter/

Speranza che funziona per te :) !

+5

mi ha dato TypeError: Impossibile leggere la proprietà 'browserInit' di undefined –

+0

Ho ricevuto lo stesso errore! – alyn000r

+0

Hai aggiunto $ cordovaFacebookProvider nell'iniezione app.config? app.config (funzione ($ stateProvider, $ urlRouterProvider, $ ionicConfigProvider, $ cordovaFacebookProvider) –

0

La mia risposta non fornisce una soluzione per il problema ma un consiglio.

Perché utilizzare Facebook Cordova quando è possibile utilizzare HelloJS? faceBook Cordova è dipendente dalla piattaforma, molto più lento in quanto esegue cordova true node.js e non evolutivo.

HelloJS permessi a intero vari autenticazione OAuth2 molto facilmente compreso, facebook/Google/Twitter/instagram ...

Senza per dire che la compilazione di facebook Cordova è molto difficile con l'applicazione chiave facebook. Su HelloJS, questo è solo un parametro che puoi facilmente modificare.

+3

scusa ma le soluzioni basate su JS hanno tutte un forte svantaggio: richiedono all'utente di accedere nuovamente se non ha effettuato l'accesso tramite il browser. Questo non è qualcosa che ci si aspetta dall'utente e fornisce un'esperienza insoddisfacente per le app ibride :( –

0

Non so se qualcuno ancora bloccato con questa cosa, allora si prega di seguire il metodo menzionato il mio @Alexy e quindi modificare il 'lib/facebook-connect-plugin/index.js' linea di file da:

if(cordova.platformId === 'browser') 

a

if(!window.cordova || (window.cordova && window.cordova.platformId === 'browser')) 

Spero che questo aiuti :)

+0

questo non aiuta molto perché la clausola "else" prova a caricare il plugin di facebook per cordova che è già (a questo punto) determinato non esistere. – dcinadr