Javascript 在ios上浏览m.youtube.com的uiwebview上点击链接

Javascript 在ios上浏览m.youtube.com的uiwebview上点击链接,javascript,iphone,ios,uiwebview,xamarin.ios,Javascript,Iphone,Ios,Uiwebview,Xamarin.ios,我在ios应用程序上使用uiwebview。 我在上面有一个文本框,它可以导航uiwebview。 我进入m.youtube.com,网络视图完美地加载了它。我在youtube.com上搜索了一下,结果完全加载了。当我点击任何视频时,我会进入视频页面,我希望该页面的url链接将与要观看的视频一起出现。 m.youtube.com/watch?v=sa+2DFdfd.。但是怎么做呢? 搜索说明: 当我使用safari在我的iphone 5上尝试这一功能时,我发现导航栏会根据我所处的页面进行完美的更

我在ios应用程序上使用uiwebview。 我在上面有一个文本框,它可以导航uiwebview。 我进入m.youtube.com,网络视图完美地加载了它。我在youtube.com上搜索了一下,结果完全加载了。当我点击任何视频时,我会进入视频页面,我希望该页面的url链接将与要观看的视频一起出现。
m.youtube.com/watch?v=sa+2DFdfd.
。但是怎么做呢?

搜索说明:

当我使用safari在我的iphone 5上尝试这一功能时,我发现导航栏会根据我所处的页面进行完美的更改。 在这个例子中,我看到;m、 youtube.com/watch?v=34124S在safari上 但我无法在uiwebview上看到它。。。。我无法获取最新加载的网页链接


ShouldLoadStart仅在第一次加载页面时有效。然后当你点击页面时;如果链接类型为
链接,则ShouldLoadStart将捕获该链接,但如果该链接类型为javascript链接,则代理不会捕获单击的链接。请帮助捕获m.youtube.com/watch?v=34124S,就像safari在youtube页面上所做的那样。

如果您想存储url,可以这样做:

NSString *currentURL = [webView stringByEvaluatingJavaScriptFromString:@"window.location"];

试试以上两种

-(void)webViewDidFinishLoad:(UIWebView *)webView
也可以这样做:

-(void)webViewDidFinishLoad:(UIWebView *)webView
{
  NSLog(@"%@",webView.request.mainDocumentURL);

 [_activityindicator stopAnimating];
}

在webview委托类中实现这一点

- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType 
{
    //CAPTURE USER LINK-CLICK.
    NSURL *url = [request URL];
    NSLog(@"clicked url: %@",[url absoluteString]);

    return YES;
}

我通过中央通知获得了链接。当视频显示为全视图时,我捕获该事件,并获取加载的页面内部html和唯一链接


如果你有更好的想法,请在下面分享

我也有同样的问题。如果是这种情况,您可以使用WKWebView

对于UIWebView,我找到的唯一解决方案是通过javascript获取当前URL:

    [webView stringByEvaluatingJavaScriptFromString: @"location.href"];

下一个问题是不会触发shouldStartLoadWithRequest。要解决这个问题,您可以使用NSURLProtocol覆盖请求(顺便说一句,使用WKWebView是不可能的)。或者通过计时器每秒检查一次当前URL:)

这仅在我第一次加载页面URL时调用。但是,当我单击m.youtube.com页面的链接时,该代表没有捕获该链接。我尝试过,但没有成功,你尝试过吗?可能是我遗漏了什么?非常感谢。嗨@theklc,我也有同样的问题,你找到解决办法了吗?@ZAFAR007我通过中央通知获得了链接。当视频显示为全视图时,我捕获该事件,并获取加载的页面内部html和唯一链接。。如果你有更好的想法,请在下面分享!
    [webView stringByEvaluatingJavaScriptFromString: @"location.href"];