Tagger: Saka-key like keyboard navigation link tagging
This commit is contained in:
@@ -32,6 +32,8 @@
|
||||
|
||||
_WKUserStyleSheet *_darkModeStyleSheet;
|
||||
WKUserScript *_readabilityScript;
|
||||
|
||||
NSArray<WKUserScript *> *_userScripts;
|
||||
}
|
||||
|
||||
- (void)tearDown
|
||||
@@ -91,6 +93,12 @@
|
||||
|
||||
_webViewConfiguration = webViewConfiguration;
|
||||
|
||||
// User scripts
|
||||
WKUserContentController *userContentController = [_webViewConfiguration userContentController];
|
||||
for (WKUserScript *script in [self _userScripts]) {
|
||||
[userContentController addUserScript:script];
|
||||
}
|
||||
|
||||
// Instantiate web view
|
||||
WKWebView *webView = [[WKWebView alloc] initWithFrame:CGRectZero configuration:webViewConfiguration];
|
||||
|
||||
@@ -106,6 +114,25 @@
|
||||
return self;
|
||||
}
|
||||
|
||||
- (WKUserScript *)_loadScriptForResource:(NSString *)resourceName withExtension:(NSString *)extension
|
||||
{
|
||||
NSURL *url = [[NSBundle mainBundle] URLForResource:resourceName withExtension:extension];
|
||||
NSString *source = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
|
||||
|
||||
return [[WKUserScript alloc] initWithSource:source injectionTime:WKUserScriptInjectionTimeAtDocumentEnd forMainFrameOnly:YES];
|
||||
}
|
||||
|
||||
- (NSArray<WKUserScript *> *)_userScripts
|
||||
{
|
||||
if (!_userScripts) {
|
||||
_userScripts = @[
|
||||
[self _loadScriptForResource:@"Tagger" withExtension:@"js"],
|
||||
];
|
||||
}
|
||||
|
||||
return _userScripts;
|
||||
}
|
||||
|
||||
#pragma mark <SBRWebProcessDelegate>
|
||||
|
||||
- (void)webProcessDidConnect
|
||||
@@ -168,10 +195,7 @@
|
||||
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];
|
||||
_readabilityScript = [self _loadScriptForResource:@"Readability" withExtension:@"js"];
|
||||
}
|
||||
|
||||
[userContentController _addUserScriptImmediately:_readabilityScript];
|
||||
|
||||
Reference in New Issue
Block a user