私は Android + Phonegap + jQuery-Mobile アプリに取り組んでおり、プッシュ通知を実装するために Pusher を使用することを計画しています。このリンクから開始プロジェクトを使用してプッシャーサービスをテストしていました: http://blog.pusher.com/pusher-on-phonegap-for-android/
プロジェクトの詳細:
Android API ターゲット 15
コルドバ 2.3.0
プッシャー JavaScript ライブラリ v1.12.7
jQuery Mobile 1.3.0 (最終リリース)
必要なすべての .java ファイルと .js ファイルをプロジェクトにコピーしました。プッシャー接続をインスタンス化する方法は次のとおりです。
var CONFIG = {
PUSHER: {
APP_KEY: 'my-key'
}
};
// Connect
var pusher = new Pusher(CONFIG.PUSHER.APP_KEY);
pusher.connection.bind('state_change', connectionStateChange);
function connectionStateChange(state) {
$('#connectionStatus').html(state.current);
}
// Subscribe
var channel = pusher.subscribe('my-channel');
channel.bind('pusher:subscription_succeeded', subscriptionSucceeded);
function subscriptionSucceeded() {
$('#subscriptionStatus').html('succeeded');
}
channel.bind('my-event', handleMyEvent);
function handleMyEvent( data ) {
// window.plugins.statusBarNotification.notify("You have a notification", data.message);
$('#pusher-data').append('<pre>'+data.message+'</pre>');
}
しかし、プロジェクトを実行すると、Pusher 接続に関するログ エントリは表示されませんが、Logcat に次のようなものが表示されます。
03-01 23:11:23.997: E/Web Console(3631): Uncaught TypeError: Object function (url) {
03-01 23:11:23.997: E/Web Console(3631): // get a new websocket object from factory (check com.strumsoft.websocket.WebSocketFactory.java)
03-01 23:11:23.997: E/Web Console(3631): this.socket = WebSocketFactory.getInstance(url);
03-01 23:11:23.997: E/Web Console(3631): // store in registry
03-01 23:11:23.997: E/Web Console(3631): if(this.socket) {
03-01 23:11:23.997: E/Web Console(3631): WebSocket.store[this.socket.getId()] = this;
03-01 23:11:23.997: E/Web Console(3631): } else {
03-01 23:11:23.997: E/Web Console(3631): throw new Error('Websocket instantiation failed! Address might be wrong.');
03-01 23:11:23.997: E/Web Console(3631): }
03-01 23:11:23.997: E/Web Console(3631): } has no method '__addTask' at file:///android_asset/www/pusher.js:1288
私はこの時点で本当に立ち往生しています。どんな助けでも大歓迎です。