now.js + phonegap,在Android浏览器上工作,有谁经历过?

时间:2012-07-11 08:00:34

标签: cordova websocket socket.io nowjs-sockets

我可以在使用Android浏览器访问文件时使用NowJS聊天,但是当在phonegap中执行相同的代码时,不会收到或发送消息。

有没有人能够使用phonegap / cordova成功使用nowJS或套接字?

代码适用于网络浏览器,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');
        });
    });

1 个答案:

答案 0 :(得分:1)

在PhoneGap中运行时,Now.js中的回退机制可能无法在WebView中运行。如果他们使用Flash Fallback,那么您需要启用插件。看起来很快就会启用它: https://github.com/apache/incubator-cordova-android/pull/18

我最近在Android初学者项目上创建了一个用于PhoneGap的Pusher,而不是启用插件并依赖于Flash,而是将运行在Java中的WebSocket对象暴露给WebView JavaScript运行时。我非常喜欢这种方法,因为它完全消除了Flash问题。也许这是你可以在你的Android应用程序中做的事情?

您可以看到启动项目,其中包含将WebSocket对象公开给WebView JS运行时所需的所有必要代码(只需用now.js替换pusher.min.js包含):

通过README提供有关PhoneGap WebSocket Android支持的信息: https://github.com/pusher/pusher-phonegap-android#native-websocket-support