Javascript 在ios上浏览m.youtube.com的uiwebview上点击链接
我在ios应用程序上使用uiwebview。 我在上面有一个文本框,它可以导航uiwebview。 我进入m.youtube.com,网络视图完美地加载了它。我在youtube.com上搜索了一下,结果完全加载了。当我点击任何视频时,我会进入视频页面,我希望该页面的url链接将与要观看的视频一起出现。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上尝试这一功能时,我发现导航栏会根据我所处的页面进行完美的更
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"];