Я хотел изменить одно входное значение в html после загрузки веб-страницы. Я готов сделать это, вызвав функцию javascript с помощью WebView. Он работал хорошо, если я установил android:targetSdkVersion
в 18. Но как только я установил его в 19, он отображает значение второго URL-адреса, даже если это только вызовы javascript. Вот код теста:Как позвонить JavaScript с Android 4.4 Webview?
import android.app.Activity;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class WebActivity extends Activity {
private WebView mWebView;
private String mJSCall;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
setContentView(R.layout.activity_webview);
mWebView = (WebView)findViewById(R.id.webview);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
if (mJSCall != null) {
view.loadUrl(mJSCall);
mJSCall = null;
}
super.onPageFinished(view, url);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub
view.loadUrl(url);
return super.shouldOverrideUrlLoading(view, url);
}
});
mWebView.loadUrl("http://wap.soso.com/?g_f=2405");
String keyword = "My Keyword";
mJSCall = "javascript:document.getElementById('keyword').value='"+keyword+"'";
super.onCreate(savedInstanceState);
}
}
Не могли бы вы сказать мне, почему это не удалось вызвать функцию яваскрипта когда targetSdkVersion=19
? Похоже, что когда метод onPageFinished
называется первым URL-адресом, который иногда обновляется, возможно, именно поэтому я не мог изменить значение в html в то время.
Так есть ли подходящее время для вызова javascript, кроме onPageFinished
? В последний день я изо всех сил пытался найти разумное решение. Если кто-то может помочь, пожалуйста. Спасибо!
Я не знаю, почему это не вызвало функцию javascript, когда targetSdkVersion = 19. Я полагаю, что Google изменил поведение метода loadUrl для Android 4.4. Я попытаюсь использовать оценкуJavascript() позже. Спасибо! – Sherlock
вы можете взглянуть на [это] (http://stackoverflow.com/questions/31702036/webview-shouldoverrideurlloading-not-getting-called) –