我最好的选择是它UIWebView
无法处理 Passbook 通行证。UIWebViewDelegate
但是,您可以尝试在方法中捕获下载-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
。
我的意思是你必须自己处理这部分,因为我使用的http://passkit.com/samples/不会返回一个结束的 url,pkpass
因此它完全取决于你如何请求存折文件。
如果您确实包含.pkpass
扩展名,则可以在请求中检查扩展名。
如果您知道存折文件的 URL 类型,您可以在此处编写自己的下载代码并通过存折 api将其传递给存折。
对此似乎没有什么好的解决方法,您可以在 safari 中加载失败的 ULR:
- (void) webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {
NSLog(@"Webview: %@", error);
if ([error.domain isEqualToString:@"WebKitErrorDomain"] && error.code == 102) {
NSString *failedURL = [error.userInfo objectForKey:NSURLErrorFailingURLStringErrorKey];
if (failedURL == nil) {
return;
}
NSURL *url = [NSURL URLWithString:failedURL];
[[UIApplication sharedApplication] openURL:url];
}
}
但这只是非常糟糕的编码。