2016-10-08 7 views
0

イオンフレームワークとプッシャーのリアルタイム技術を使用してプッシャーアプリケーションを開発しています。 app.jsの 'プッシャ・アングル(pusher-angular)'依存性注入は、Androidアプリケーションで実行するとイオンアプリケーションでは機能しません。どのようにそれを解決するための任意の提案?私は私のアプリケーションでPusherリアルタイムAPIを使用できるように、コントローラに$ pusher依存性注入を有効にしたい。なにか提案を?私が見'プッシャー角度'はイオンアプリケーションでは機能しません

index.htmlを

<!DOCTYPE html> 
<html> 
    <head> 
    <meta charset="utf-8"> 
    <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width"> 
    <title></title> 


    <!-- compiled css output --> 
    <link href="css/ionic.app.css" rel="stylesheet"> 
    <link href="css/style.css" rel="stylesheet"> 

    <!-- ionic/angularjs js --> 
    <script src="lib/ionic/js/ionic.bundle.js"></script> 

    <!-- cordova script (this will be a 404 during development) --> 
    <script src="lib/ngCordova/dist/ng-cordova.js"></script> 
    <script src="cordova.js"></script> 

    <!-- your app's js --> 
    <script src="//js.pusher.com/3.2/pusher.min.js"></script> 
    <script src="//cdn.jsdelivr.net/angular.pusher/latest/pusher-angular.min.js"></script> 
    <script src="js/app.js"></script> 
    <script src="js/controllers.js"></script> 
    <script src="js/services.js"></script> 
    </head> 
    <body ng-app="starter" > 
    <ion-nav-view></ion-nav-view> 
    </body> 
</html> 

app.js

angular.module('starter', ['ionic', 'starter.controllers', 'starter.services','ngCordova']) 

    .run(function($ionicPlatform, $cordovaSQLite) { 
     $ionicPlatform.ready(function() { 
     if (window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) { 
      cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true); 
      cordova.plugins.Keyboard.disableScroll(true); 

     } 
     if (window.StatusBar) { 
      StatusBar.styleDefault(); 
     } 

     db = window.openDatabase("chatChannel.db", "1", "Demo SQLite Test", "2000"); 
     $cordovaSQLite.execute(db, "CREATE TABLE IF NOT EXISTS chat_channel(id interger primary key, chat_room text, last_text text, username text, chat_channel text unique)") 
     }); 
    }) 

Controller.js

.controller('ChatRoomCtrl', ['$scope', '$state', '$rootScope',   '$ionicScrollDelegate', 
    function($scope, $state, $rootScope,$ionicScrollDelegate){ 

     var client = new Pusher('ed05a79be9c11b452872', { 
      cluster: 'ap1', 
      encrypted: true 
     }); 
     var my_channel = client.subscribe(subscribeChannel); 
     my_channel.bind('chat_message', function(data) { 
      console.log(data); 
      $scope.messages.push(data); 
     }); 

    } 
+1

コンソールにエラーを持っていますか?編集して投稿にコードを追加できますか?特に、プッシャー用のスクリプトを追加するindex.htmlと、それを使用するコントローラーについてです。 – e666

+0

@ e666編集して自分のコードを含めました。 –

+0

angularjsに 'pusher-angular'をどこに注入するのかわかりません。また、コンソールにエラーがありますか? – e666

答えて

2

最初の問題はindex.htmlです。

<script src="//js.pusher.com/3.2/pusher.min.js"></script> 
<script src="//cdn.jsdelivr.net/angular.pusher/latest/pusher-angular.min.js"></script> 

この行はAndroidアプリケーションでは動作しませんが、ブラウザで動作します。これは、アンドロイドファイルがfile://からロードされ、例えばfile://js.pusher.com/3.2/pusher.min.jsをロードしようとするためです。

あなたは正確にこのようなプロトコルが必要になります。

<script src="https://js.pusher.com/3.2/pusher.min.js"></script> 
<script src="https://cdn.jsdelivr.net/angular.pusher/latest/pusher-angular.min.js"></script> 
+0

ええ、それは問題です。本当に助けてくれてありがとう。 –

関連する問題