Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone web视图和覆盖链接的问题_Iphone_Objective C_Ios_Ipad_Uiwebview - Fatal编程技术网

Iphone web视图和覆盖链接的问题

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,其中某些部分有一个
。我在这个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之前替换第一手出现的所有图像将是一项开销,如果我在触摸图像时仅替换该特定图像,那么这样会更有效。这就是为什么我有轻拍的姿势