Si deve aggiungere l'host socketio al tasto "ExternalHosts" in PhoneGap. plist.
Vedi Faq:
Q. Links to and imported files from external hosts don't load?
A. The latest code has the new white-list feature. If you are referencing external hosts, you will have to add the host in PhoneGap.plist under the "ExternalHosts" key. Wildcards are ok. So if you are connecting to " http://phonegap.com ", you have to add "phonegap.com" to the list (or use the wildcard "*.phonegap.com" which will match subdomains as well). (Note: If you open the plist file in Xcode, you won't need to fiddle with the XML syntax.)
per Android si deve modificare cordova.xml e aggiungere l'accesso all'host socketio:
<access origin="HOST*"/>
index.html (con socketio esempio):
...
<script src="HOST/socket.io/socket.io.js"></script>
<script>
var socket = io.connect('HOST');
socket.on('news', function (data) {
socket.emit('my other event', { my: 'data' });
});
</script>
...
app.js (lato server JavaScript/esempio di base socketio):
var io = require('socket.io').listen(80);
io.sockets.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('my other event', function (data) {
console.log(data);
});
});
L'HOST è necessario sostituire con il nome host del server socket.io!
fonte
2012-06-04 18:48:29
È solo Android? Sto costruendo per iOS e non ho un cordova.xml, solo un cordova.plist. Hai fatto questo su iOS? Grazie! – fancy
Sì (cordova.xml è solo Android). Per iOS devi inserire l'HOST in PhoneGap.plist (vedi http: // StackOverflow.it/a/8972890/584545) –
L'aggiunta di un host alla lista bianca non ha nulla per quanto riguarda l'impostazione dell'origin, che è il problema. Shazron, di seguito (chi crea PhoneGap) ha l'idea giusta, io proprio non so come farlo. – fancy