创建Parse安装对象UWP winjs

时间:2016-01-18 09:50:30

标签: javascript parse-platform winjs uwp

我在我的UWP javascript应用程序中使用Parse javascript SDK。正如快速入门中所提到的,我正在使用以下行初始化Parse,

Path = (*env)->GetStringUTFChars( env, path, null) ;

但它不会在Parse仪表板中创建安装对象。另外,如文档中所述,

  

安装数据只能由客户端SDK,数据浏览器或REST API修改。

我试图按照一些答案创建安装对象,https://stackoverflow.com/a/32599778,但我无法让它正常工作。有关如何创建安装对象的任何想法?感谢

1 个答案:

答案 0 :(得分:1)

您首先需要生成一个" native"设备的安装ID。您可以使用Parse javascript平台已经生成的那个,但生成一个新平台并不难。只是模仿已经在Parse源代码中完成的工作:

function generateInstallationId(){
    function hexOctet() {
        return Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1);
    }

    return hexOctet() + hexOctet() + '-' + hexOctet() + '-' + hexOctet() + '-' + hexOctet() + '-' + hexOctet() + hexOctet() + hexOctet();
}

然后构造适当的xhr标头。由于我们模仿本机Parse SDK使用REST的方式,我们使用dotNet密钥或客户端密钥,而不是javascript密钥。

var xhrHeaders = {
    "Content-Type": "application/json",
    "X-Parse-Application-Id": YOUR_APP_ID,
    "X-Parse-Windows-Key": YOUR_DOTNET_KEY
};

然后构造您的安装对象数据,以便它通过服务器验证。

var installationData = {
   appIdentifier: "your.app.package",
   appName: "appName",
   appVersion: "1.0.0",

   deviceType: "winrt",
   deviceUris: {_Default: YOUR_WNS_CHANNEL_URI},
   timeZone: "America/Los_Angeles",
   localeIdentifier: "en-US",
   parseVersion: "1.7.0.0",
   installationId: generateInstallationId()
}

最后,进行REST调用

WinJS.xhr({
    type: "POST",
    url: "https://api.parse.com/1/installations",
    headers: xhrHeaders,
    data: JSON.stringify(installationData)
});

我从parse-push-plugin中挑选了大部分代码,尤其是this file。如果您需要更多上下文或想要了解如何获得WNS频道,请随时查看。