您确实意识到,为了创建有效的 Apple Wallet Pass,您需要创建一个捆绑包,然后对其进行签名、压缩和分发?
This link to apple dev docs 将有助于对流程有基本的了解。
根据this comment 的说法,请注意不要直接在应用程序中创建通行证。
我们遇到了与您类似的问题 - 我们有用于销售交通票的 Ionic 应用程序,我们希望在 iOS 上添加将票添加到钱包的功能。
我所做的所有研究似乎都表明目前(2019 年 12 月)无法完成。
虽然,您可以使用一种解决方法
它涉及在系统浏览器中打开外部链接,因此可能会发现此解决方案不合适。
- 您需要有一个端点(您的 API 或第三方服务),该端点将返回生成并签名的 .pkpass 文件。它不必专门返回文件,而是包含带有此类标头的捆绑包的响应:
Content-Type: application/vnd.apple.pkpass
Content-Disposition: attachment;filename=your_file_name.pkpass
- 在您的 Ionic 应用程序中安装 In App Browser 原生插件
ionic cordova plugin add cordova-plugin-inappbrowser
npm install @ionic-native/in-app-browser
- 将其添加到您的 AppModule 提供程序中
import { InAppBrowser } from '@ionic-native/in-app-browser/ngx';
@NgModule({
...
providers: [
...
InAppBrowser
],
})
export class AppModule {}
- 在组件中注入
InAppBrowser 并调用方法create,第二个参数(目标)为_system。此命令将使用提供的 url 打开外部本机设备浏览器。如果端点配置正确,浏览器将自动开始下载,然后呈现给用户 UI 以将票证/通行证添加到钱包。这是一个很好的 UI 示例:Link to the image
constructor(private inAppBrowser: InAppBrowser) {
}
downloadApplePass(ticket) {
const url = `https://your.api/endpoint/${ticket.id}`;
this.inAppBrowser.create(url, '_system');
}