我可以在使用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');
});
});
答案 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