簡體   English   中英

WebApp上的phonegap-facebook-plugin,JS錯誤

[英]phonegap-facebook-plugin on WebApp, JS error

我正在構建一個基於離子的移動應用程序,我正在使用phonegap-facebook-plugin登錄facebook。 我已經設法在android和ios上安裝插件,它的工作原理。 但是,在嘗試將其用於webapp時,我正在努力使其成功。 我將概述我的設置然后概述錯誤:

的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中,嘗試將所有腳本標記放在最后(就在關閉正文標記之前)。 這應該可以解決問題。

也許這個答案為時已晚,但對於那些有相同問題的人來說。 我在離子框架中面臨這個問題,將以下內容添加到平台(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>

希望這可以幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM