2015-01-12 88 views
14

我试图添加本地fb连接到我的离子应用程序。facebookConnectPlugin未定义(ngCordova,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); 
}) 

导致这个错误>

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 /3分之13305

  • 这是另一个相关的线程,但并不能帮助我以为, forum.ionicframework.com/t/does-ng-crodova-has-facebook-login/9163

我已经有了在应用程序浏览器中使用fb auth的原型。但我真的想要一个原生的fb连接功能。

+0

是插件安装正确?运行'离子插件list',或尝试重新安装插件 – devqon

+0

看起来它: com.phonegap.plugins.PushPlugin 2.4.0 “PushPlugin” com.phonegap.plugins.facebookconnect 0.11.0 “Facebook连接” 组织.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

第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 +代码初始化:

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步:更换完成后不要忘记从你的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> 

第5步:添加在有效的OAuth重定向的URI场在自己的Facebook应用程序: http://static.ak.facebook.com/connect/xd_arbiter/

希望工程为你 :) !

+5

给了我TypeError:无法读取undefined的属性'browserInit' –

+0

我得到了同样的错误! – alyn000r

+0

您是否在app.config注入中添加了$ cordovaFacebookProvider? app.config(函数($ stateProvider,$ urlRouterProvider,$ ionicConfigProvider,$ cordovaFacebookProvider) –

0

我的回答并不是为您的问题提供解决方案,而是一个建议。

为什么在使用HelloJS时使用Facebook Cordova? faceBook Cordova依赖于平台,速度慢得多,因为它运行的是cordova真正的node.js而不是演变的。

HelloJS许可证整数各种OAuth2验证程序很容易,包括Facebook的/谷歌/ Twitter的/ Instagram的...

没有告诉大家,对于Facebook科尔多瓦编译非常棘手与facebook的关键应用。在HelloJS上,这只是一个可以轻松更改的参数。

+3

抱歉,但基于JS的解决方案都有一个很大的缺点:如果用户没有通过他的浏览器登录,他们需要用户再次登录。这不是用户所期望的,并且为混合应用程序提供了令人不满的体验:( –

0

我不知道是否有人仍然有这个东西卡住,那么请按照方法提到我@Alexy,然后从编辑“的lib/Facebook的连接 - 插件/ index.js”文件行:

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

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

希望这有助于:)

+0

这并不真正有帮助,因为“else”子句试图为cordova加载facebook插件,该插件已经(此时)确定不是存在。 – dcinadr

相关问题