如何从Xamarin表单应用程序为.pkpass文件自动启动Apple钱包

问题描述 投票:0回答:1

我已经成功创建了.pkpass文件,并且api成功返回了.pkpass文件。在Xamarin表单中,我使用了API,并尝试将.pkpass文件添加到钱包中,但是钱包不会自动启动。

通过Xamarin应用程序从api使用的文件工作正常,该文件没有问题。我已作为电子邮件附件发送并下载了附件-.pkpass文件随钱包应用程序自动打开。

public async Task DigitalMembershipCardApple()
    {
        string accesstoken = _dataHelper.GetAccessTokenFromDBAsync().Result;
        try
        {
            _oHttpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accesstoken);
            HttpResponseMessage response = await _oHttpClient.GetAsync(new Uri(Constants.Urls.DigitalMembershipCardApple + _dataHelper.GetPersonID()));

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

            string filePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), Constants.CISIMembershipCardFields.FileDownloadName);

            if (File.Exists(filePath))
            {
                File.Delete(filePath);
                File.WriteAllBytes(filePath, filebytes);
            }
            else
            {
                File.WriteAllBytes(filePath, filebytes);
            }

            await Launcher.OpenAsync(new OpenFileRequest
            {
                File = new ReadOnlyFile(filePath, Constants.CISIMembershipCardFields.MimeTypeApple)
            });
        }
        catch (Exception ex)
        {
            Debug.WriteLine(ex.StackTrace);
            throw ex;
        }
    }

我也使用了Xamarin基本启动器,但这没有帮助。

enter image description hereenter image description here非常感谢快速帮助

xamarin.forms xamarin.ios wallet
1个回答
0
投票

阅读PassKit in Xamarin.iOS的文档之前,在Adding Passes into Wallet部分中,我没有使用Apple钱包:

可以通过以下方式将通行证添加到电子钱包:

  • Conduit Apps –它们不会直接处理通行证,它们只是加载通行证文件,并向用户显示将其添加到电子钱包的选项。
  • 伴侣应用程序–由提供商编写,用于分发通行证,并提供其他功能来浏览或编辑通行证。 Xamarin.iOS应用程序具有对PassKit API的完全访问权限,以创建和处理通行证。然后可以使用PKAddPassesViewController将通行证添加到电子钱包。此过程在本文档的“伴侣应用程序”部分中有更详细的描述。

[Mail是管道应用程序,它将附件识别为通行证,因此钱包应用程序自动打开。

Your xamarin app是Companion App,然后可以使用PKAddPassesViewController将通行证添加到电子钱包。在您的应用中读取文件将无法打开钱包应用。

我的想法是,您可以下载文件并按照步骤here通过使用iOS项目中的dependency-service打开钱包应用。

© www.soinside.com 2019 - 2024. All rights reserved.