如何在 iOS webview 中获取当前屏幕上的显示文本

Posted

技术标签:

【中文标题】如何在 iOS webview 中获取当前屏幕上的显示文本【英文标题】:How to get the show text on current screen in iOS webview 【发布时间】:2016-04-07 14:53:24 【问题描述】:

我想在 ios UIWebView 上添加书签。 webview 是加载 html 文档。 书签数据应该是 webview 中当前显示屏幕上的文本内容位置。 如果可能,请帮助我。

谢谢。

【问题讨论】:

您已经尝试过什么,请向我们展示您的代码,以便我们更好地了解您想要做什么。 请注意,这是一个问答网站,不是代码编写服务。如果您edit您的问题描述了您到目前为止所尝试的内容以及您遇到的问题,那么我们可以尝试帮助解决具体问题。您还应该阅读How to Ask。 他没有尝试过任何事情,但得到了他想要的东西..只是代码..懒惰的开发人员会倒下.. 【参考方案1】:

使用 UIWebView 您可以获得委托方法:

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;
- (void)webViewDidStartLoad:(UIWebView *)webView;
- (void)webViewDidFinishLoad:(UIWebView *)webView;
- (void)webView:(UIWebView *)webView didFailLoadWithError:(nullable NSError *)error;

所以你要检查来自webViewDidFinishLoad 的 URL,如下所示:

- (void) webViewDidFinishLoad:(UIWebView *)webView

    NSString *requestUrlString = webView.request.URL.absoluteString;
    NSLog(@"requestUrlString : %@", requestUrlString);

然后您可以使用 CoreData 或 NSUserDefaults 打开 URL 并将其保存为书签,如下所示:

// New bookmark
NSDictionary *bookmark = @@"bookmark_title":@"My Bookmark",  @"bookmark_url":@"https://www.google.com/";

// Get bookmarks
NSMutableArray *bookmarks = [[NSUserDefaults standardUserDefaults] objectForKey:@"myBookmarks"];

// Update bookmarks
[bookmarks addObject: bookmark];
[[NSUserDefaults standardUserDefaults] setObject:bookmarks forKey:@"myBookmarks"]
[[NSUserDefaults standardUserDefaults] synchronize];

【讨论】:

以上是关于如何在 iOS webview 中获取当前屏幕上的显示文本的主要内容,如果未能解决你的问题,请参考以下文章

如何获取webView的高度

如何从 iOS 屏幕获取文本内容?

如何从webview本身更改屏幕大小?

Webview - 如何在Rotate上保留当前页面

ios webview 图片自适应屏幕宽度

iOS webView 没有使用整个屏幕