私の最善の策は、UIWebView
が Passbook パスを処理できないということです。UIWebViewDelegate
ただし、メソッドでダウンロードを試してキャッチすることはできます-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
。
私が言いたいのは、この部分を自分で処理する必要があるということです。私が使用したhttp://passkit.com/samples/は終了する URL を返さないためpkpass
、通帳ファイルをどのように要求するかに完全に依存しています。
拡張子を含める場合は.pkpass
、リクエストで拡張子を確認できます。
passbook ファイルがどのような URL にあるかがわかっている場合は、ここに独自のダウンロード コードを記述し、それをpassbook api経由で passbook に渡します。
これに対する優れた修正はないようです。失敗した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];
}
}
しかし、これは本当に悪いコーディングです。