0

Android ブラウザーでファイルにアクセスするときに NowJS チャットを使用できますが、phonegap 内で同じコードを実行すると、メッセージが送受信されません。

phonegap/cordova で nowJS またはソケットを正常に使用できた人はいますか?

コードは Web ブラウザ、FF、Chrome、Android ネイティブ ブラウザで動作しますが、phonegap では動作しません

$(document).ready(function(){
        now.receiveMessage = function(id, name, message, timestamp){
            $("#messages").append("<br>" + id + ' ' + name + ": " + message + ' ' + timestamp);
        };

        // Send message to people in the same group
        $("#send-button").click(function(){
            now.distributeMessage(room, $("#text-input").val());
            $("#text-input").val("");
        });

        now.name = 'Guest '+Math.floor(Math.random() * 1000 % 5 + 2);

        // on establishing 'now' connection, set server room and allow message sending
        now.ready(function(){
        room = location.hash.replace('#', '');

            if (!room) {
            alert("Please specify a room");
            throw "";
            }

            now.changeRoom(room);

            // Connection established and room set; allow user to start sending messages
            $("#send-button").removeAttr('disabled');
        });
    });
4

1 に答える 1

1

PhoneGap で実行している場合、Now.js のフォールバック メカニズムが WebView で機能していない可能性があります。Flash Fallback を使用している場合は、プラグインを有効にする必要があります。これはすぐにデフォルトで有効になるようです: https://github.com/apache/incubator-cordova-android/pull/18

私は最近、Android スターター プロジェクトで PhoneGap のプッシャーを作成し、プラグインを有効にして Flash に依存する代わりに、Java で実行されている WebSocket オブジェクトを WebView JavaScript ランタイムに公開しました。Flash の問題が完全に解消されるため、このアプローチは非常に気に入っています。多分これはあなたのAndroidアプリでできることですか?

ここで、WebSocket オブジェクトを WebView JS ランタイムに公開するために必要なすべてのコードを含むスターター プロジェクトを確認できます (pusher.min.js インクルードを now.js インクルードに置き換えるだけです)。

また、README による PhoneGap WebSocket Android サポートに関する情報: https://github.com/pusher/pusher-phonegap-android#native-websocket-support

于 2012-07-11T14:36:41.830 に答える