МЕТОД 1
Я попробовал этот код:
- (void)parse
{
[_webView evaluateJavaScript:@"document.getElementsByTagName('a')"
completionHandler:^(id result, NSError *error){
if (error) {
NSLog(@"Error: %@", error.description);
}
else {
//...
}
}];
}
И я получил эту ошибку:
Error Domain=WKErrorDomain Code=5 "JavaScript execution returned a result of an unsupported type" UserInfo={NSLocalizedDescription=JavaScript execution returned a result of an unsupported type}
Есть ли способполучить массив ссылок напрямую?Я думаю, что это больше, чем просто массив, возможно, сложная структура NSDictionary DOM.
МЕТОД 2
Затем я попробовал этот код:
- (void)parse
{
int length = 0;
[_webView evaluateJavaScript:@"document.getElementsByTagName('a').length"
completionHandler:^(id result, NSError *error){
if (error) {
NSLog(@"Error: %@", error.description);
}
else {
NSString *lengthString = (NSString *)result;
NSLog(@"Length String: %@", lengthString);
__block length = (int)[lengthString intValue];
}
}];
NSLog(@"Length: %d", length);
}
И я получил это предупреждение:
Type specifier missing, defaults to 'int'
С этим журналом:
Length String: 242
Length: 0
После этого я планирую проанализировать каждую ссылку, используя этот код JS:
document.getElementsByTagName('a')[i].href
Как правильно назначить переменную длины внутри блока?