IOS - UIWebview - 获取点击链接的 URL 并编辑 url

Posted

技术标签:

【中文标题】IOS - UIWebview - 获取点击链接的 URL 并编辑 url【英文标题】:IOS - UIWebview - Get the URL of the link clicked and edit the url 【发布时间】:2013-07-04 16:00:51 【问题描述】:

我正在创建一个具有 web 视图的应用程序。当用户单击 webview 中的链接或按钮时,我希望能够获取新的 url,并编辑新的 url。

首先我使用以下 url 初始化 webview:

- (void)viewDidLoad
    
   NSString *id = @"12212323";

    [super viewDidLoad];
    NSString *fullURL = [[NSString alloc] initWithFormat:@"www.website.com/index.php?id=%@", id];
    NSURL *url = [NSURL URLWithString:fullURL];
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
    [webView loadRequest:requestObj];

当我点击链接时,例如 www.website.com/contact.php

然后我用 www.website.com/contact.php*?id=12212323*

编辑新网址

我需要在所有 url 中保留 id 参数。

【问题讨论】:

想让 URL 可见吗?如果你编辑就像一个网络浏览器? 不,我不想让用户看到它。 【参考方案1】:

UIWebViewDelegateProtocol 应该符合您的要求。 特别是方法- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType

【讨论】:

谢谢,不过我刚试了一下,在方法里面放了一些 NSLog 但它从不调用那个方法 你应该选择代表【参考方案2】:

这是获取当前 URL 的代码

  - (void)viewDidLoad
        
       NSString *id = @"12212323";

        [super viewDidLoad];
        NSString *fullURL = [[NSString alloc] initWithFormat:@"www.website.com/index.php?id=%@", id];
        NSURL *url = [NSURL URLWithString:fullURL];
        NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
        [webView loadRequest:requestObj];

        NSURL *currentURL = [requestObj URL];
        NSLog(@"Current URL is %@", currentURL.absoluteString);
    

但是要创建一个隐藏或不隐藏的 URL 栏是很多代码,你可以从 YouTube 上的这个教程开始,很简单而且效果很好,可能会给你其他的想法来做好工作;)

Web Browser Tutorial

希望对你有帮助

【讨论】:

以上是关于IOS - UIWebview - 获取点击链接的 URL 并编辑 url的主要内容,如果未能解决你的问题,请参考以下文章

摆脱 iOs UIWebView 中的链接单击“flash”指示器

无需单击即可检测UIWebView链接

UIwebView 链接延迟

UIWebView 故障中的视频链接

iOS 清除 UIWebView 的回溯历史

iOS应用程序因苹果应用商店而被拒绝,因为UIWebview