一个链接
<a href="addpkpass://yourdomain.com/passes/ticket-123.pkpass">:WebViewGold 会把它还原为 https:// URL,并在应用内浏览器标签页中打开;该标签页能识别卡券,并显示原生的“添加到 Apple 钱包”预览。
Cursor + Apple Wallet
如果您的 Cursor 应用销售活动门票、运营会员计划或发放优惠券,这些卡券就应该放进 Apple Wallet(Apple 钱包),在需要的时候出现在锁定屏幕上。WebViewGold 补上了缺失的一环:把 .pkpass URL 中的 https:// 换成 addpkpass://,iOS 就会显示原生的“添加到 Apple 钱包”面板。卡券仍需您自己创建并签名;在 Android 上,Google Wallet 则通过它自己的网页保存链接来实现。
每个平台一次性 $109 起,或由我们的团队全程代劳,$698 起。
<a href="addpkpass://yourdomain.com/passes/ticket-123.pkpass">:WebViewGold 会把它还原为 https:// URL,并在应用内浏览器标签页中打开;该标签页能识别卡券,并显示原生的“添加到 Apple 钱包”预览。
.pkpass 文件是一个经过签名的文件包(pass.json、图片、清单文件和签名),用您 Apple Developer 账号中自己的 Pass Type ID 证书制作。您可以在自己的服务器上生成,也可以使用卡券服务;WebViewGold 负责把它交给 Wallet。
HTTPS、MIME 类型 application/vnd.apple.pkpass,以及有效的签名。三者中任何一项出错,iOS 都无法显示预览,用户只会看到一条错误信息。
自 2024 年起,Google Wallet 可以导入许多 .pkpass 文件,但支持情况因设备和卡券而异,而且 addpkpass:// scheme 仅适用于 iOS。Android 上可靠的做法是用 Google Wallet API 创建 Google Wallet 卡券,并使用官方的“添加到 Google 钱包”按钮,它链接到 pay.google.com 上一个由您服务器签名的保存 URL。
把这段粘贴到 Cursor 中以实现 Web 应用端。检查结果,发布,然后在 WebViewGold 应用中测试。
给 Cursor Agent 的提示词:为我们的门票添加 Wallet 卡券。1) 创建 lib/wallet/apple.ts,用来自服务端环境变量的证书构建并签名一张 eventTicket .pkpass(passkit-generator 或同类工具),包括 serialNumber、包含门票代码的二维码、relevantDate 和可选的 webServiceURL。2) 添加一个需要身份验证的路由,签发签名的短期下载 URL;再添加一个下载路由,验证令牌后以 Content-Type application/vnd.apple.pkpass 返回卡券。3) 编写一个测试:解压生成的卡券,检查 manifest.json 是否列出了每个文件及其正确的 SHA-1 哈希。4) 在界面中使用 Apple 官方徽标:在 iOS 应用内(navigator.userAgent 包含我们的 WebViewGold 标识以及 iPhone 或 iPad),链接到把 https:// 替换为 addpkpass:// 的下载 URL;Safari 使用 https URL。5) 可选:添加 lib/wallet/google.ts,签名 Google Wallet 保存 JWT,并为 Android 返回 https://pay.google.com/gp/v/save/JWT。6) 在 .cursor/rules 中记录这两个流程,以及 pay.google.com 的 BROWSER_BLACKLIST 条目。

把 Web 应用转换成原生应用的绝佳方式!周转速度快,无需开发完整的原生应用就能把应用上架到应用商店!
Apple Wallet 有五种卡券样式:活动门票、商店卡、优惠券、登机牌和通用卡券。最常用到的是:
工作坊、线下聚会、音乐会、课程。一个包含门票 ID 的二维码、日期和地点,再设置一个相关日期,让卡券在活动开始前出现在锁定屏幕上。
咖啡馆、美发店、健身房。一张以条形码显示会员编号、带积分余额的商店卡,之后还可以更新。
在柜台扫码或在结账时出示的折扣码,带有用户看得到的到期日期。
俱乐部会员、联合办公空间门禁、VIP 或季票:身份识别正是 Apple 明确列出的用途之一。
第一种卡券类型大约需要一天;最耗时的是证书。
在 Apple Developer 账号的“证书、标识符和描述文件”(Certificates, Identifiers & Profiles)中注册一个 Pass Type ID(例如 pass.com.yourcompany.tickets),创建对应的证书,并下载 Apple 的 WWDR 中间证书。两者都放在您的服务器上,绝不放进客户端。
在 您自己的 API 路由或服务 中用一个服务器函数构建 pass.json(序列号、包含门票代码的条形码、相关日期或地点)并签名,例如在 Node 上使用 passkit-generator,或者通过托管的卡券 API。把序列号和订单一起保存。
应用内浏览器标签页可能不与 WebView 共享登录 Cookie,所以请给卡券 URL 加上一个签名的短期令牌,而不是依赖登录会话。
使用 Apple 官方的“添加到 Apple 钱包”徽标。在 iOS 应用内用 addpkpass:// 链接到卡券;在 Safari 中,普通的 https 链接原生即可使用;在 Android 上则显示 Google Wallet 按钮或 PDF 门票。
在 pass.json 中添加 webServiceURL 和 authenticationToken,并实现 Apple 的卡券 Web 服务;当检票口、座位或积分余额发生变化时,通过 APNs 通知设备,Wallet 就会下载新版本。
添加一张卡券,从锁定屏幕打开它,再试试过期的令牌和已作废的门票。确认条形码能被您在入口处实际使用的扫码设备识别。
您的服务器返回两个 URL,由页面选择合适的那个。YourAppToken 是 Config.swift / Config.java 中的自定义 User-Agent。
var ua = navigator.userAgent;
var inApp = ua.indexOf("YourAppToken") !== -1;
var isIOS = /iPhone|iPad|iPod/.test(ua);
var isAndroid = /Android/.test(ua);
// pass = {
// pkpassUrl: "https://yourdomain.com/passes/T-1042.pkpass?t=SIGNED_TOKEN",
// googleSaveUrl: "https://pay.google.com/gp/v/save/SIGNED_JWT", // 由您的服务器生成
// pdfUrl: "https://yourdomain.com/tickets/T-1042.pdf"
// }
function walletLink(pass) {
if (isIOS && inApp) return pass.pkpassUrl.replace(/^https:\/\//, "addpkpass://");
if (isIOS) return pass.pkpassUrl; // Safari 原生支持打开 .pkpass
if (isAndroid && pass.googleSaveUrl) return pass.googleSaveUrl;
return pass.pdfUrl; // 桌面端和兜底方案
}
document.getElementById("add-to-wallet").href = walletLink(window.currentPass);WebViewGold 没有专门的 Google Wallet API,而且 addpkpass:// scheme 仅适用于 iOS。走网页路线效果很好:
BROWSER_BLACKLIST 中,或者给链接加上 newtab: 前缀,并把 SPECIAL_LINK_HANDLING_OPTIONS 设为 2(URL 处理文档)。不会。WebViewGold 负责把卡券交给 Apple Wallet。.pkpass 文件的创建和签名在您的服务器或卡券服务中完成,使用的是您通过 Apple Developer Program 获得的 Pass Type ID 证书。
Apple Wallet 只存在于 Apple 设备上。在较新的 Android 手机上,Google Wallet 能导入许多 .pkpass 文件,但支持情况不一,所以可靠的做法是通过 Google Wallet API 创建 Google Wallet 卡券,并在 WebView 之外、用户已登录 Google 的地方打开它的保存链接(Config.java 中的 BROWSER_BLACKLIST)。WebViewGold 没有专门的 Google Wallet API。
可以,借助 Apple 的卡券 Web 服务:在 pass.json 中加入 webServiceURL 和 authenticationToken,Wallet 就会向您的服务器注册该设备。当检票口、座位或余额变化时,您通过 APNs 发送推送,Wallet 就会获取新版本。
这个标签页能识别 .pkpass 内容类型,并显示原生的“添加到 Apple 钱包”预览。它可能不与主 WebView 共享 Cookie,因此卡券 URL 必须在没有应用登录会话的情况下也能使用,例如带上一个签名且会过期的令牌。
可以。iPhone 和 Mac 上的 Safari 原生支持打开 .pkpass 链接,所以同一个 https URL 在网页上也能用;只有应用内才使用 addpkpass:// 前缀。
结果相同,只是您需要投入的工作量不同。三种方式都附带审核通过保证和 7×24 小时人工支持。
$109 每个平台,一次性付费
WebViewGold 许可证:一个现成的 Xcode 或 Android Studio 项目。粘贴您的 URL,设置名称和图标,开启所需功能,构建并提交。永久免费更新。
在主页查看方案$349 每个许可证,一次性附加购买
无需 Mac、Xcode 或 Android Studio:在浏览器中完成配置,我们在云端构建两个应用,并将其交付到 App Store Connect 和 Play Console。
Cloud Builder 如何运作 试用免费演示$698 每个平台 $798
把您的 URL 和图标发给我们。我们的团队在 72 小时内完成配置、构建并交付您的应用,白标,附源码项目。两个平台共 $1,158。
Full Service 详情 服务提供方:冬季特惠价格有效期至 2026年12月31日。
App Store & Google Play 审核通过保证 – 否则 14 天内退款
想直接交给我们?Full Service:我们在 72 小时内完成配置、构建并交付,每个平台 $698 起。有疑问?通过 7×24 小时在线聊天联系我们。
退款依据我们 FAQ 中列出的条件:应用因非内容原因被 Apple 和/或 Google 拒审,并在购买后 14 天内提出申请。