У меня есть веб-приложение, которое прослушивает щелчки и сравнивает их с предварительно определенными строками, чтобы проверить, нужно ли мне подключаться к Java.
Я начал с очевидного:
shouldOverrideUrlLoading
и там делайте что-то вроде:
if(url.contains(myhook)){
//do what i need
}
Это хорошо, когда дело касается кликов пользователей в веб-просмотре. Но теперь я нахожусь в точке, где мне нужно поймать, если ресурс загружает URL. Поэтому я нашел «onLoadResource» и решил, что это то, что я хочу, но я не могу заставить его работать.
Моя общая настройка:
private String myhook = "http://domain.com/listener";
{ ... }
@Override
public void onLoadResource(WebView view, String url)
{
if(url.contains(myhook)){
//do my stuff!!
mWebView.loadUrl("http://domain.com/success.html");
}
else
{
super.onLoadResource(view, url);
}
}
Мой веб-код (index.html):
{...}
<a href="http://domain.com/processing.php" >sign up</a>
{...}
Это вызывает мою страницу обработки php:
<?php
{...}
header('Location: http://domain.com/listener/?data=#data#');
?>
Но мой хук никогда не вызывается, так что success.html никогда не загружается, а мое "делай мои вещи" никогда не происходит. Он пытается отправить запрос на http://domain.com/listener/?data=#data#, который не существует (я просто использую это, чтобы получить #data #).
Следует отметить, что мой "onLoadResource" находится внутри моего private class TestWebViewClient extends WebViewClient {
прямо перед моим @Override public boolean shouldOverrideUrlLoading
- не уверен, правильно ли это.
Любая помощь или другие методы будут оценены.