Android Phonegap - ОШИБКА ВРЕМЕНИ при попытке установить WebViewClient
Я работаю с Android и Phonegap, и в данный момент у меня возникают проблемы с одной простой вещью. Мне нужно настроить webViewClient для PhoneGap webView, чтобы захватить URL страницы и работать с ней.
Это код:
public class PhoneGapTest extends DroidGap {
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
super.setBooleanProperty("loadInWebView", true);
super.clearCache();
super.keepRunning = false;
super.loadUrl("file:///android_asset/www/index.html");
super.appView.setWebViewClient(new WebViewClient(){
@Override
public void onPageStarted(WebView view, String url, Bitmap bitmap) {
Log.i("TEST", "onPageStarted: " + url);
}
@Override
public void onPageFinished(WebView view, String url) {
Log.i("TEST", "onPageFinished: " + url);
}
});
}
Этот код, похоже, не работает, страница никогда не загружается, и я получаю ОШИБКУ ВРЕМЕНИ, но если я удалю & quot; setWebViewClient & quot; часть страницы загружается отлично.
Я видел, что есть класс CordovaWebViewClient, я должен использовать это вместо WebViewClient? Я нашел этот способ в Интернете:
this.appView.setWebViewClient(new CordovaWebViewClient(this){
@Override
public boolean shouldOverrideUrlLoading(final WebView view, String url) {
Log.i("BugTest", "shouldOverrideUrlLoading: " + url);
return true;
}
@Override
public void onPageStarted(WebView view, String url, Bitmap bitmap) {
Log.i("TEST", "onPageStarted: " + url);
}
@Override
public void onPageFinished(WebView view, String url) {
Log.i("TEST", "onPageFinished: " + url);
}
@Override
public void doUpdateVisitedHistory(WebView view, String url, boolean isReload){
}
});
Но этот код тоже не работает, у меня все еще есть ОШИБКА ВРЕМЕНИ. Я также видел, что уже есть член webVieClient, но я не знаю, должен ли я его использовать и как.
Я работаю с PhoneGap версии 1.9.0
Спасибо за прочтение
Ответ Саймону:
Так получилось, спасибо!
public class MainActivity extends DroidGap {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.init();
super.appView.clearCache(true);
super.appView.clearHistory();
this.appView.setWebViewClient(new CustomCordovaWebViewClient(this));
super.loadUrl("file:///android_asset/www/index.html");
}
public class CustomCordovaWebViewClient extends CordovaWebViewClient {
public CustomCordovaWebViewClient(DroidGap ctx) {
super(ctx);
}
@Override
public void onPageStarted(WebView view, String url, Bitmap bitmap) {
super.onPageStarted(view, url, bitmap);
Log.i("TEST", "onPageStarted: " + url);
}
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
Log.i("TEST", "onPageFinished: " + url);
}
@Override
public void doUpdateVisitedHistory(WebView view, String url, boolean isReload){
super.doUpdateVisitedHistory(view, url, isReload);
}
@Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
super.onReceivedError(view, errorCode, description, failingUrl);
}
}
}