facebookConnectPlugin未定义(ngCordova,Ionic app)

col*_*lin 15 angularjs cordova ionic

我正在尝试将原生fb连接添加到我的离子应用程序中.

我正在使用: - Ionic - 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);
})
Run Code Online (Sandbox Code Playgroud)

这会导致此错误>

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

尝试了几件但没有任何积极的结果: - 当我构建它并在我的设备上运行时,应用程序显示一个空白屏幕

  • 尝试了正常的cordova 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的原型.但我真的想拥有原生的fb连接功能.

The*_*ult 5

我找到了解决此问题的方法.

感谢这个帖子: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>身体后.

第二步:我将facebookConnectPlugin添加到我的bower依赖项中

看我的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"
}
Run Code Online (Sandbox Code Playgroud)

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

$ cordovaFacebookProvider调用facebookConnectPlugin()

第3步:更改此依赖项后,不要忘记从您的CLI调用bower更新. 凉亭更新示例

第四步:在index.html中包含新的facebookblablabla.js.

有可能

<script src='bower_components/facebook-connect-plugin/index.js'></script>
Run Code Online (Sandbox Code Playgroud)

对我来说是

<script src='lib/facebook-connect-plugin/index.js'></script>
Run Code Online (Sandbox Code Playgroud)

第5步:在Facebook App中添加Valid OAuth重定向URI字段:http: //static.ak.facebook.com/connect/xd_arbiter/

希望这对你有用 :) !

  • 给了我TypeError:无法读取undefined的属性'browserInit' (5认同)