Pkpass文件无法打开

时间:2018-03-11 17:18:34

标签: ios xamarin passkit

我在使用Xamarin的Apple Passbook存在问题。我从提供给我的服务器通过HTTP Post收到了pkpass作为附件。

以下是回复中的必要信息

版本:1.1,内容:System.Net.Http.StreamContent 内容长度:103587 Content-Type:application / vnd.apple.pkpass 内容 - 处理:附件;文件名= 0000000.pkpass

我收到它作为一个字节[],这就是我将它保存到设备的方式:

        byte[] result = await response.Content.ReadAsByteArrayAsync();


        var documents = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
        var directoryname = Path.Combine(documents, "..", "Library", "Caches");
        var files = Path.Combine(directoryname, string.Format("{0}.pkpass", trimmedPlanMemberID));
        File.WriteAllBytes(files, result);

当我尝试使用Passviewer在Mac上打开.pkpass时,我收到错误“无法打开通行证”。

我错过了一步吗?我必须解码字节[]才能读取这个吗?我不太熟悉这个,所以我还在学习。我还使用Xamarin PassKit示例(CouponBanana2.pkpass)测试了我的应用程序,该示例在我的应用程序中运行良好。

我在这里得到一个例外:

                NSData nsdata;
                using (FileStream oStream = File.Open(newFilePath, FileMode.Open))
                {
                    nsdata = NSData.FromStream(oStream);
                }

                var err = new NSError(new NSString("42"), -42);
                var newPass = new PKPass(nsdata, out err); // exception here not being able to read nsdata

如果我错过了一步,我还需要做些什么才能成功打开.pkpass。收到文件时文件是否可能损坏?如果需要更多信息,我可以提供帮助理解,因为我现在已经用尽了所有选项。

0 个答案:

没有答案