2015-01-12 2 views
14

Я пытаюсь добавить родной fb подключиться к своему ионному приложению.facebookConnectPlugin не определен (ngCordova, Ionic app)

Я использую: - Ионные - ngCordova - http://ngcordova.com/docs/plugins/facebook/

Это мой код:

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); 
}) 

Что приводит к этой ошибке>

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) 

Пробовал пару вещей, но без какого-либо положительного результата: - Когда я его создаю и запускаю на своем устройство приложение отображает пустой экран

  • Пробовал нормальный Cordova код: расслоение плотной

  • Изменено $ cordovaFacebookProvider до $ cordovaFacebook (на основе этой теме: forum.ionicframework.com/t/unknown-provider -cordovaprovider/13305/3

  • И это еще одна связанная нить, но не поможет мне подумала .. forum.ionicframework.com/t/does-ng-crodova-has-facebook-login/9163

У меня уже есть прототип, работающий с fb auth в браузере в приложении. Но я действительно хочу иметь встроенную функциональность fb connect.

+0

ли плагин установлен правильно? запустить 'ионный плагин list', или попробуйте переустановить плагин – devqon

+0

Похоже на то: com.phonegap.plugins.PushPlugin 2.4.0 "PushPlugin" com.phonegap.plugins.facebookconnect 0.11.0 "Facebook Connect" орг .apache.cordova.camera 0.3.4 «Камера» org.apache.cordova.console 0.2.12 «Консоль» org.apache.cordova.inappbrowser 0.5.5-dev «InAppBrowser» – colin

+0

Любой успех? Я тоже застрял в этой проблеме. – AaronB

ответ

5

Я нашел способ решить эту проблему.

Благодаря этой теме: https://github.com/driftyco/ng-cordova/issues/446

и этот учебник: https://github.com/Wizcorp/phonegap-facebook-plugin/blob/master/platforms/browser/README.md

первый шаг: Не забудьте <div id="fb-root"></div> после ур тела.

второй шаг: Я добавил facebookConnectPlugin моих зависимостей Бауэр

Смотрите мой 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" 
} 

Смотрите мой app.config + код инициализации:

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 call facebookConnectPlugin()

3-й шаг: после изменения s, не забудьте вызвать обновление bower от ur CLI. bower update example

4-й шаг: включите в свой index.html новый facebookblablabla.js.

может быть

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

для меня это было

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

пятого шаг: добавить в действительном OAuth перенаправлять поле URIS в вашем Facebook App: http://static.ak.facebook.com/connect/xd_arbiter/

Надеется, что это работает для тебя :) !

+5

дал мне TypeError: Не могу прочитать свойство «browserInit» undefined –

+0

У меня такая же ошибка! – alyn000r

+0

Вы добавили $ cordovaFacebookProvider в вашу инъекцию app.config?app.config (функция ($ stateProvider, $ urlRouterProvider, $ ionicConfigProvider, $ cordovaFacebookProvider) –

0

Мой ответ не является решением для вашей проблемы, но является советом.

Зачем использовать facebook Cordova, когда вы можете использовать HelloJS? faceBook Cordova зависит от платформы, гораздо медленнее, поскольку она работает с кордорой true node.js и не эволюционирует.

HelloJS разрешения на целое различные oauth2 аутентификации очень легко в том числе, facebook/Google/Twitter/Instagram ...

Без сказать, что сборник для facebook Кордову очень сложно с ключом приложения facebook. В HelloJS это только параметр, который вы можете легко изменить.

+3

извините, но решения на основе JS имеют большой недостаток: они требуют, чтобы пользователь снова входил в систему, если он не выполнил вход через свой браузер. Это не то, что ожидается от пользователя и дает неудовлетворительный опыт для гибридных приложений :( –

0

Я не знаю, если кто-то до сих пор застрял с этой вещью, пожалуйста, следуйте методу, изложенному мой @Alexy, а затем отредактировать «Библиотека/facebook-подключения-плагин/index.js» файл построчно из:

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

в

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

Надеется, что это помогает :)

+0

это не помогает, потому что предложение «else» пытается загрузить плагин facebook для кордовы, который уже (на данный момент) определен не существовать. – dcinadr

Смежные вопросы