Я не могу изменить местоположение веб-просмотра в коде Java.
Я уже пробовал следующее решение: webView.reload (), повторить webView.setWebChromeClient (newWebChromeClient ()), webView.loadUrl ("about: blank")
Основной принцип:
веб-просмотр инициализируется в основном классе -> пользователь запускает функцию js -> которая запускает метод 'changePage' java-интерфейса "
Основной класс Java:
public class MainActivity extends AppCompatActivity {
private WebView webView;
WebAppInterface interf;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView = (WebView) findViewById(R.id.myWebView);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebChromeClient(new WebChromeClient());
interf = new WebAppInterface(webView);
webView.addJavascriptInterface(interf, "Android");
webView.loadUrl("file:///android_asset/page_1.html");
}
}
Java-интерфейс между js-кодом и java:
class WebAppInterface {
private WebView mWebView;
WebAppInterface(WebView w) {
mWebView = w;
}
@JavascriptInterface
public void changePage() {
// This line don't seems to have an effect on anything
mWebView.loadUrl("file:///android_asset/page_2.html");
}
}
И js-код, запускающий метод changePage в интерфейсе:
function changePage() {
Android.changePage();
}
changePage();
Веб-сайт остается на page1.html. У меня есть некоторые анимации js, которые не замирают, и я не получаю ошибку.
Thx!
--- EDIT ---
хорошо, я нашел одно решение, какитак:
@JavascriptInterface
public void changePage() {
mWebView.post(new Runnable() {
public void run() {
mWebView.loadUrl("file:///android_asset/page_2.html");
}
});
}