您确实意识到,为了创建有效的 Apple Wallet Pass,您需要创建一个捆绑包,然后对其进行签名、压缩和分发?
这个指向苹果开发文档的链接将有助于获得对该过程的基本了解。根据此评论,有考虑不要直接在应用程序中创建通行证。
我们遇到了与您类似的问题 - 我们有用于销售交通票的 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 示例:链接到图像
constructor(private inAppBrowser: InAppBrowser) {
}
downloadApplePass(ticket) {
const url = `https://your.api/endpoint/${ticket.id}`;
this.inAppBrowser.create(url, '_system');
}