Iphone web视图和覆盖链接的问题
我有一个UIWebView,其中某些部分有一个Iphone web视图和覆盖链接的问题,iphone,objective-c,ios,ipad,uiwebview,Iphone,Objective C,Ios,Ipad,Uiwebview,我有一个UIWebView,其中某些部分有一个。我在这个UIWebView中添加了一个UIApsignature,所以我想要的基本上是当用户点击一个图像时,它不会将您带到指向它的链接,而是做一些事情。我在阻止图像转到指向的超链接时遇到问题。有什么想法吗?我尝试注入javascript,以便在用户点击图像时,将href更改为一些虚假链接,然后点击: - (BOOL)webView:(UIWebView *)webview shouldStartLoadWithRequest:(NSURLReque
。我在这个UIWebView中添加了一个UIApsignature,所以我想要的基本上是当用户点击一个图像时,它不会将您带到指向它的链接,而是做一些事情。我在阻止图像转到指向的超链接时遇到问题。有什么想法吗?我尝试注入javascript,以便在用户点击图像时,将href更改为一些虚假链接,然后点击:
- (BOOL)webView:(UIWebView *)webview shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
我检查了请求url是否与我的虚拟url匹配。但是,由于某些原因,这不起作用,请使用以下方法更改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]);
}
还有其他想法吗?如果您可以控制HTML源代码(听起来像是这样),那么您可以将href更改为使用自定义URI方案,例如photo://然后您可以执行以下操作:
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{
NSURL *url = [request URL];
if ([[url scheme] isEqualToString:@"photo"])
{
// Custom Handling Goes Here
return NO; // Stops the link being executed by UIWebView
} else
return YES;
}
但是,如果无法控制HTML源代码,则可能需要稍微谨慎一些。例如,你可以检查路径的末尾,看看它是否是图像(jpg、png等)。问题是,我不知道用户将按下哪个url,这就是为什么我在触摸处理程序中使用上面的javascript函数来更改我触摸到的图像与其他内容的链接,但是它不起作用,我不确定你想要实现什么,也许你可以描述一下这个用例?如果您更改了所有链接,那么它们都会出现在您的自定义处理代码中-并且您可以根据URI的其余部分执行不同的操作?我的意思是,我不认为您的TapPasture需要成为解决方案的一部分-摆脱它,然后在
webView:shouldstartdoadwithrequest:…
中处理不同的URL后执行自定义操作,例如。photo://image1 photo://image2 photo://image3 -你可以用不同的方式处理它们(如果你想这么做的话…),最初HTML源代码将图像链接到其他链接的某个形式上。。。我需要先用自定义链接替换它(photo://image1). 如何将所有图像链接更改为类似的内容?我之所以要进行触摸,也是因为在加载html之前替换第一手出现的所有图像将是一项开销,如果我在触摸图像时仅替换该特定图像,那么这样会更有效。这就是为什么我有轻拍的姿势