私はUIWebViewの一部に<a href="" > <img src="" </a>
が含まれています。このUIWebViewにUITapGestureを追加しました。基本的にユーザーがイメージをタップすると、指し示されたリンクに移動するのではなく、むしろ何かをやります。私はそれが指しているハイパーリンクに画像が移動するのを防ぐのに問題があります。何か案が?ウェブでの表示とリンクのオーバーライドに関する問題
- (BOOL)webView:(UIWebView *)webview shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
それは私が持っているダミーと一致した場合、私は要求URLをチェックする:私は、ユーザーが上でその画像をタップしてたときに、それはいくつかの偽のリンクにHREFを変更するようにJavaScriptを注入しようとしました。ただし、これは機能しません。何らかの理由でhrefリンクを変更すると、次のようになります。
NSString *stripLink = [NSString stringWithFormat:@"document.elementFromPoint(%f, %f).parentNode.href=%@", pt.x, pt.y, @"http://www.fakeurl.com"];
if ([self stringByEvaluatingJavaScriptFromString:stripLink] != nil){
NSString *testHref = [NSString stringWithFormat:@"document.elementFromPoint(%f, %f).parentNode.href", pt.x, pt.y];
NSLog(@"FINAL HREF IS %@", [self stringByEvaluatingJavaScriptFromString:testHref]);
}
他のアイデアはありますか?
よくある質問では、どのURLがユーザーによって押されるのかわかりません。なぜそうですか?上記のjavascript関数をタッチハンドラーで使用して、私が他のものに触れる画像のリンクを変更することができましたが、うまくいきません。 – adit
あなたが達成しようとしていることがわかりません。場合?すべてのリンクを変更すると、それらはすべてカスタム処理コードになります。残りのURIに応じて、何か異なることができますか? – ikuramedia
私はあなたのTapGestureがソリューションの一部である必要はないと思っています。それを取り除き、 'webView:shouldStartLoadWithRequest:...'で異なるURLを処理した結果カスタムアクションを行います。写真:// image1 photo:// image2 photo:// image3 - あなたはそれらをすべて別々に扱うことができます(それがあなたがしたいことならば...) – ikuramedia