Reader Mode
This commit is contained in:
@@ -31,6 +31,7 @@
|
||||
id<SBRWebProcessProxy> _webProcessProxy;
|
||||
|
||||
_WKUserStyleSheet *_darkModeStyleSheet;
|
||||
WKUserScript *_readabilityScript;
|
||||
}
|
||||
|
||||
- (void)tearDown
|
||||
@@ -161,4 +162,32 @@
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
- (void)parseDocumentForReaderMode:(void (^)(NSString * _Nonnull))completionBlock
|
||||
{
|
||||
WKUserContentController *userContentController = [_webViewConfiguration userContentController];
|
||||
|
||||
if (!_readabilityScript) {
|
||||
NSURL *readabilityJSURL = [[NSBundle mainBundle] URLForResource:@"Readability" withExtension:@"js"];
|
||||
NSString *readabilityJSSource = [NSString stringWithContentsOfURL:readabilityJSURL encoding:NSUTF8StringEncoding error:nil];
|
||||
|
||||
_readabilityScript = [[WKUserScript alloc] initWithSource:readabilityJSSource injectionTime:WKUserScriptInjectionTimeAtDocumentEnd forMainFrameOnly:YES];
|
||||
}
|
||||
|
||||
[userContentController _addUserScriptImmediately:_readabilityScript];
|
||||
|
||||
NSString *script = @""
|
||||
"var documentClone = document.cloneNode(true);"
|
||||
"var article = new Readability(documentClone).parse();"
|
||||
"article.content";
|
||||
|
||||
[_webView evaluateJavaScript:script completionHandler:^(NSString *result, NSError * _Nullable error) {
|
||||
if (error != nil) {
|
||||
NSLog(@"Bridge: Readability error: %@", error.localizedDescription);
|
||||
} else {
|
||||
completionBlock(result);
|
||||
}
|
||||
}];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
Reference in New Issue
Block a user