Ссылка на веб-браузер Android (ссылка перехода) не работает
True, якорные ссылки WebView или переходные ссылки, инициированные через расширение #LINK для URL, не будут работать, когда WebView находится внутри ScrollView (*).
Тем не менее, проблема для меня и, очевидно, для других заключается в том, что #LINK работает, когда запускается от прикосновения в href, но игнорируется при запуске через URL. Другие симптомы включают переход к ссылке только в первый раз в сеансе или переход к нижней части HTML-файла.
Решение состоит в том, чтобы загрузить URL после небольшой задержки.
Вот пример:
Мой HTML-файл сохраняется в ресурсах: res / assets / help.html
С такими анкерами:
<a name="helplinkcontacts"/>
И загружается так:
final String baseUrl = "file:///android_asset/help.html#helplinkcontacts";
final WebView helpTextView = (WebView)findViewById(R.id.help_dialog_text);
helpTextView.loadUrl(baseUrl); // Ignores Anchor!!
Я добавил таймер так:
final String baseUrl = "file:///android_asset/help.html#helplinkcontacts";
final WebView helpTextView = (WebView)findViewById(R.id.help_dialog_text);
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
helpTextView.loadUrl(baseUrl);
}
}, 400);
Примечание. Более короткие задержки, например, 100 мс, не привели к переходу по ссылке.
(*) Оказывается, что у многих из нас есть наши WebViews внутри ScrollViews, потому что мы начали с рендеринга текста в TextView, который поддерживает некоторый HTML и требует ScrollView. В любом случае удалите ScrollView, как только вы преобразуете TextView в WebView.