2013-08-14 3 views
4

J'essaie d'obtenir une inscription sur Azure Notification Hub à partir du code html/javascript s'exécutant dans un hôte d'affichage Web (Phonegap/Intel XDK). Il n'y a pas de bibliothèque client disponible, donc j'essaie d'utiliser l'API REST (documentation:).Echec de l'enregistrement Azure Notification Hub à partir de Javascript à l'aide des services REST

J'ai le code Javascript suivant:

function registerWithAzureNotificationHub() 
{ 
    var sas = "Endpoint=sb://eventpusher-ns.servicebus.windows.net/;SharedAccessKeyName=DefaultListenSharedAccessSignature;SharedAccessKey=69XuYoluyBKl6JkkN03Z1oNC7cFSZ4Ku0ZWmPuWoJzs="; 
    var data = '<?xml version="1.0" encoding="utf-8"?>\ 
    <entry xmlns="http://www.w3.org/2005/Atom">\ 
     <content type="application/xml">\ 
     <MpnsRegistrationDescription xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/netservices/2010/10/servicebus/connect">\ 
     <Tags>myTag, myOtherTag</Tags>\ 
     <ChannelUri>https://eventpusher-ns.servicebus.windows.net/eventpusher</ChannelUri>\ 
     </MpnsRegistrationDescription>\ 
     </content>\ 
    </entry>'; 
    if (AppMobi.iswp8) { 
     window.alert("IS WP8"); 
    } 
    else 
    { 
     window.alert("IS NOT WP8"); 
    } 

    $.ajax({ 
     type:"POST", 
     url: "https://eventpusher-ns.servicebus.windows.net/EVENTPUSHER/registrations/?api-version=2013-08", 
     contentType: "application/atom+xml;type=entry;charset=utf-8", 
     headers: { 
      "Authorization": sas, 
      "x-ms-version": "2013-08" 
     }, 
     dataType: "xml", 
     data: data, 
     success: function(d) { window.alert("SUCCESS!"); }, 
     error: function(msg) { window.alert("FAILURE:" + JSON.stringify(msg)); } 
    }); 
    window.alert("SENT!"); 
} 

Dans le cas ci-dessus, j'utilise le processeur Intel XDK avec le code en cours d'exécution sur un dispositif de WP8, donc je vous inscrire à MPNS (Microsoft push Service de notification).

Le code ci-dessus échoue et renvoie sans informations descriptives sur la cause de l'erreur.

Questions:

  1. Est-il possible d'enregistrer un appareil mobile pour Hub de notification Azure de code javascript en utilisant les services REST?
  2. Quel pourrait être le problème avec le code ci-dessus? Le ChannelUri est-il le bon Uri?

Répondre

4

Il est certainement possible d'utiliser l'interface REST à partir de javascript. Dans votre code, il y a deux problèmes principaux:

  1. dans le ChannelURI vous devriez mettre le channelURI récupéré du WindowsPhone HttpPushNotificationChannel (comme dans this tutoriel).
  2. L'en-tête d'autorisation est un jeton créé pour votre requête spécifique. Comme décrit here

Un échantillon utilisant WinJS est available. Nous allons travailler sur un échantillon spécifique de PhoneGap très bientôt!

+8

Des nouvelles sur le support PhoneGap pour cela? –

+0

Toujours pas de nouvelles sur PhoneGap? – Naning

Questions connexes