2015-12-07 6 views
10

Ich versuche, mit Azure Mobile Services und Visual Studio Tools für Apache Cordova zu beginnen. (https://msdn.microsoft.com/en-gb/magazine/dn879353.aspx)Azure Mobile Services/VS Tools für Cordova - 404

Ich möchte den Mobile Service für Push-Benachrichtigungen verwenden. Ich habe den Service mit einem Knoten-Backend und einer TodoItem-Tabelle erstellt. Ich habe auch ein GCM eingerichtet.

Wenn jedoch eine Vorlage registrieren versuchen, erhalte ich einen 404-Fehler nicht gefunden:

var GCM_SENDER_ID = 'MY_GCM_ID'; 
mobileServiceClient = new WindowsAzure.MobileServiceClient(
     "MY_URL", 
     "MY_API_KEY" 
); 

pushNotification = PushNotification.init({ 
    "android": { "senderID": GCM_SENDER_ID } 
}); 

pushNotification.on('registration', function (data) { 
     var handle = data.registrationId; //This appears to be set alright 
     var platform = device.platform; // This is 'Android' 
     if (platform == 'android' || platform == 'Android') { 
     var template = '{ "data" : {"message":"$(message)"}}'; 
     mobileServiceClient.push.gcm.registerTemplate(handle, 'myTemplate', template, null); 
}); 

Die letzte Zeile mir, ich bin mit der App im Google Android Emulator ein 404. gibt.

EDIT: Ich habe versucht, die Registrierungen rufenden Endpunkt mit Postman: https://myservice.azure-mobile.net/push/registrations?platform=gcm&deviceId=

Wenn ich einen GET tun, erhalte ich [] als Antwort, wenn ich eine POST zu tun, bekomme ich 404

+0

Können Sie feststellen, welche Version der JS-Datei/des Plugins Sie installiert haben? Auch welche Version Ihres Node.js Servers ist? Es wird eine Kopfzeile geben, wenn Sie einen beliebigen Endpunkt (wie tables/todoitem) von x-zumo-version: Zumo.master.0.1.6.4401.Runtime treffen. – phillipv

+0

Danke. Wie kann ich den Header ansehen? Ich habe einen oder zwei Tage damit verbracht, den Emulator dazu zu bringen, gut mit Fiddler zu spielen, aber ich komme nirgendwohin. – user888734

+0

Sie können Postman App für Chrome, einfacher als Muck mit Fiddler und keine Notwendigkeit, irgendwelche Emulatoren/etc. – phillipv

Antwort

2

Endlich ist es fixiert - Ich hatte das Cordova Whitelist Plugin nicht installiert!

Ich erkannte nach dem Debuggen in MobileServices.Web.js und sehen, dass genau die gleiche Anfrage, die erfolgreich mit Postman war im Android Emulator fehlgeschlagen ist.

+0

Obwohl Sie die Ursache gefunden haben, aber Ihr Code noch einen ungültigen Bereich hat, wird die Funktion 'pushNotification.on' niemals geschlossen, wenn Sie'} 'schließen –