phonegap-facebook-plugin on WebApp, JS error

phonegap-facebook-plugin on WebApp, JS error

本文关键字:JS error WebApp on phonegap-facebook-plugin      更新时间:2023-09-26

我正在构建一个基于Ionic的移动应用程序,我正在使用phonegap-facebook插件登录facebook。我已经设法在安卓和ios上安装插件,它的工作原理。然而,在尝试将其用于web应用程序时,我很难使其工作。我将列出我的设置,然后列出错误:

login.html

<div id="fb-root"></div>
<div class="event listening button" ng-click="login();">Login with Facebook</div>

app.js

angular.module('app', ['ionic', 'app.controllers', 'app.services'])
.config(function($stateProvider, $urlRouterProvider) {
  $stateProvider
    //First page
    .state('login', {
      url: '/login',
      templateUrl: 'templates/login.html',
      controller: 'LoginCtrl'
    });

controllers.js

angular.module('app.controllers', [])
.controller('LoginCtrl', function($scope){
    $scope.login = function () {
        if (!window.cordova) {
            var appId = prompt("Enter FB Application ID", "");
            facebookConnectPlugin.browserInit(appId);
        }
        facebookConnectPlugin.login( ["email"], 
            function (res) {                                                
                //if successfull                                            
                if (JSON.stringify(response['authResponse']['accessToken']) != null){
                    alert("True");
                    $location.path('/home').replace();
                }
                else{
                    //redirect back
                }
            },
            function (res) { 
                //if error
                alert(JSON.stringify(response)) 
            }
        );
    }
});

facebookConnectPlugin.js,我有一行代码得到错误"Uncaught TypeError:不能读取属性'appendChild'的null",特别是第174行:

document.getElementById('fb-root').appendChild(e);

我知道这一定是由于DOM,但似乎无法克服它。

任何帮助将是伟大的,谢谢:)

在index.html中,尝试将所有脚本标记放在末尾(就在结束正文标记之前)。这应该能解决问题。

也许这个答案太迟了,但是对于那些有同样问题的人来说。我在ionic框架中面临这个问题,将以下内容添加到平台(ios,android,浏览器),这些内容为我解决了这个问题。

<script>
  window.fbAsyncInit = function() {
    FB.init({
      appId      : 'your_app_id',
      xfbml      : true,
      version    : 'v2.8'
    });
    FB.AppEvents.logPageView();
  };
  (function(d, s, id){
     var js, fjs = d.getElementsByTagName(s)[0];
     if (d.getElementById(id)) {return;}
     js = d.createElement(s); js.id = id;
     js.src = "//connect.facebook.net/en_US/sdk.js";
     fjs.parentNode.insertBefore(js, fjs);
   }(document, 'script', 'facebook-jssdk'));
</script>

希望这对你有帮助!