如何在Windows Phone应用程序中使用.pkpass文件?

时间:2014-02-28 22:25:51

标签: c# json windows-phone zip passbook

我需要从iOS Passbook文件中获取数据,以便在我的Windows Phone应用程序中使用。我可以下载它,但如何从中获取数据?看起来是二元的?

1 个答案:

答案 0 :(得分:1)

.pkpass文件实际上是 ZIP存档。在存档中,您将找到一个pass.json文件,其中包含传递的所有元数据。

使用Windows Phone兼容的ZIP库Silverlight SharpZipLibpass.json中提取.pkpass

string passDotJsonAsJson = null;
using(Stream pkpassAsStream = await client.GetPkpass())
{
    responseStream.Position = 0;
    using(ZipFile pkpass = new ZipFile(pkpassAsStream))
    {
        var passDotJson = pkpass.GetEntry("pass.json");

        using (var passDotJsonAsStream = pkpass.GetInputStream(passDotJson)) 
        {
            var reader = new StreamReader(passDotJsonAsStream);
            passDotJsonAsJson = await reader.ReadToEndAsync();
        }
    }
}

你有它。 passDotJsonAsJson现在包含作为json字符串的传递。您现在可以使用Json.NET使其成为.NET对象。