これは、私がこれまでに行った不幸の中で最も苛立たしいことでした。私はUIWebViewを持っています。http://m.youtube.comに移動します。私が押す後続のリンクは、UIWebView ではなく Safari に送信されます。シンプルですね。何度も出てくるコードは次のとおりです。
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
if (navigationType == UIWebViewNavigationTypeLinkClicked) {
[[UIApplication sharedApplication] openURL:request.URL];
return NO;
}
return YES;
}
しかし、これはうまくいきません。だから私はに変更UIWebViewNavigationTypeLinkClicked
しましたUIWebViewNavigationTypeOther
。これは、ビューが読み込まれるとすぐに Safari で開きます。繰り返しますが、私が欲しいものではありません。だから私はこれをしました:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
if (navigationType == UIWebViewNavigationTypeOther) {
NSLog(@"It works!");
// [[UIApplication sharedApplication] openURL:[NSURL URLWithString:[urlArr objectAtIndex:indexPath.row]]];
return YES;
}
return NO;
}
後続のクリックがここを通過しても通過しないかどうかを確認します。ログには「うまくいきました!」としか表示されません。ビューが最初に読み込まれるとき。その後のクリックでは何も表示されません。
そこで、URL の変更と Javascript の変更を調べてみましたが、まだ何もありません。他にできることはありますか?
(ちなみに、このコードは、stackoverflow.com などの他の Web サイトでも機能することに注意してください。その後のリンクをクリックすると、Safari に移動します。YouTube でのみ機能しません)。
これは、YouTube でリンクを押したときにログから取得したものです。
2013-01-24 21:08:25.886 HatFilms[30079:c07] [MPAVController] Autoplay: Enabling autoplay
2013-01-24 21:08:25.886 HatFilms[30079:c07] [MPAVController] Autoplay: Skipping autoplay, disabled (for current item: 0, on player: 1)
2013-01-24 21:08:25.887 HatFilms[30079:c07] setting movie path: http://r1---sn-5n3-n1qe.c.youtube.com/videoplayback?mv=m&mt=1359061639&ms=au&yms=Ag6pZvjqA20&source=youtube&key=yt1&el=watch&upn=g2ConWh5QJ0&id=201015c58a31c984&cp=U0hUTlBTVF9LS0NONF9ITVhCOlhkN3FFcm5zWDY5&ip=31.205.57.12&newshard=yes&fexp=909714%2C901802%2C919358%2C914066%2C916625%2C902534%2C920704%2C912806%2C922403%2C922405%2C929901%2C913605%2C925710%2C929104%2C920201%2C913302%2C919009%2C911116%2C926403%2C910221%2C901451&sparams=cp%2Cid%2Cip%2Cipbits%2Citag%2Cratebypass%2Csource%2Cupn%2Cexpire&sver=3&expire=1359086161&dnc=1&app=youtube_mobile&ratebypass=yes&itag=18&signature=A434075DABFEBB44E5F0588B7430D04A931684B0.648F49C3F4D254E29B970A6AA68BAC1C08280B97&ipbits=8
2013-01-24 21:08:25.887 HatFilms[30079:c07] [MPAVController] Autoplay: Enabling autoplay
2013-01-24 21:08:25.895 HatFilms[30079:c07] [MPCloudAssetDownloadController] Prioritization requested for media item ID: 0
そして、UIWebView が受け取るすべてをログに記録すると:
2013-01-24 21:50:31.642 HatFilms[30372:c07] [MPAVController] Autoplay: Enabling autoplay
2013-01-24 21:50:31.642 HatFilms[30372:c07] [MPAVController] Autoplay: Skipping autoplay, disabled (for current item: 0, on player: 1)
2013-01-24 21:50:31.642 HatFilms[30372:c07] setting movie path: http://r1---sn-5n3-n1qe.c.youtube.com/videoplayback?expire=1359086161&key=yt1&sver=3&app=youtube_mobile&el=watch&signature=44DA69CF58A649EAA813EE2A8E91B38BB164CB9D.2DA718585DEDB6F55E4ABBDD247602E713981C83&source=youtube&upn=3Qgzgd7FAjY&newshard=yes&ratebypass=yes&ipbits=8&itag=18&yms=Ag6pZvjqA20&fexp=909714%2C901802%2C919358%2C914066%2C916625%2C902534%2C920704%2C912806%2C922403%2C922405%2C929901%2C913605%2C925710%2C929104%2C920201%2C913302%2C919009%2C911116%2C926403%2C910221%2C901451&ip=31.205.57.12&sparams=cp%2Cid%2Cip%2Cipbits%2Citag%2Cratebypass%2Csource%2Cupn%2Cexpire&cp=U0hUTlBTVF9LS0NONF9ITVhCOlhkN3FFcm5zWDY5&dnc=1&id=201015c58a31c984&mv=m&mt=1359064215&ms=au
2013-01-24 21:50:31.643 HatFilms[30372:c07] [MPAVController] Autoplay: Enabling autoplay
2013-01-24 21:50:31.646 HatFilms[30372:c07] [MPCloudAssetDownloadController] Prioritization requested for media item ID: 0
2013-01-24 21:50:32.333 HatFilms[30372:c07] [MPAVController] Autoplay: Skipping autoplay, disabled (for current item: 0, on player: 1)
2013-01-24 21:50:32.349 HatFilms[30372:c07] [MPAVController] Autoplay: _streamLikelyToKeepUp: 0 -> 1
2013-01-24 21:50:32.350 HatFilms[30372:c07] [MPAVController] Autoplay: Skipping autoplay, disabled (for current item: 0, on player: 1)
2013-01-24 21:50:32.768 HatFilms[30372:c07] [MPAVController] Autoplay: Enabling autoplay
2013-01-24 21:50:32.786 HatFilms[30372:c07] [MPAVController] Autoplay: Enabling autoplay
ご覧いただきありがとうございます