FacebookConnectPlugin не определен (ngCordova, Ionic app)
Я пытаюсь добавить родной fb подключиться к моему ионному приложению.
Я использую:
- Ионные
- 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)
Пробовал пару вещей, но без какого-либо положительного результата:
- Когда я его создаю и запускаю на своем устройстве, приложение отображает пустой экран
-
Пробовал обычный код кордовы js:
-
Изменен $cordovaFacebookProvider на $cordovaFacebook (на основе этой темы:
forum.ionicframework.com/t/unknown-provider-cordovaprovider/13305/3
-
И это еще одна связанная нить, но мне не помогает.
forum.ionicframework.com/t/does-ng-crodova-has-facebook-login/9163
У меня уже есть прототип, работающий с fb auth в браузере in-app. Но я действительно хочу иметь встроенную функциональность fb connect.
Ответы
Ответ 1
Я нашел способ решить эту проблему.
Благодаря этой теме: https://github.com/driftyco/ng-cordova/issues/446
и этот учебник: https://github.com/Wizcorp/phonegap-facebook-plugin/blob/master/platforms/browser/README.md
1-й шаг: не забывайте <div id="fb-root"></div>
после тела ур.
2-й шаг: я добавил 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 + для 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 call facebookConnectPlugin()
3-й шаг: после изменения этих зависимостей не забудьте вызывать обновление bower от ur CLI.
![bower update example]()
4-й шаг: включите новый файл facebookblablabla.js в свой index.html.
это может быть
<script src='bower_components/facebook-connect-plugin/index.js'></script>
для меня это было
<script src='lib/facebook-connect-plugin/index.js'></script>
5-й шаг: добавьте поле Valid UA переназначения OAuth в ваше приложение Facebook:
http://static.ak.facebook.com/connect/xd_arbiter/
Надеюсь, что это сработает для вас:)!
Ответ 2
Мой ответ не предоставляет решение для вашей проблемы, но совет.
Зачем использовать facebook Cordova, когда вы можете использовать HelloJS?
faceBook Cordova зависит от платформы, намного медленнее, поскольку она работает с кордорой true node.js, а не эволюционирующей.
HelloJS позволяет легко интегрировать различные аутентификации Oauth2, в том числе, facebook/google/twitter/instagram...
Нельзя сказать, что компиляция для facebook cordova очень сложна с приложением facebook key. В HelloJS это только параметр, который вы можете легко изменить.
Ответ 3
Я не знаю, если кто-то все еще придерживается этой вещи, пожалуйста, следуйте методу, упомянутому моим @Alexy, а затем отредактируйте строку файла lib/facebook-connect-plugin/index.js:
if(cordova.platformId === 'browser')
к
if(!window.cordova || (window.cordova && window.cordova.platformId === 'browser'))
Надеюсь, что это поможет:)