Cần giúp đỡ innerHTML return null - javascirpt trong android
Chào ace,
Mình đang viết một app android liên quan đến webview .
Trong phương thức onCreate mình khai báo 1 webview như sau:
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
w = (WebView) findViewById(R.id.webview);
w.getSettings().setJavaScriptEnabled(true);
w.loadDataWithBaseURL("http://bar/", "<span id='math'></span>", "text/html", "utf-8", "");
FuncA("this is value");
}
Minh tạo một FuncA(String text) được gọi trong method onCreate như sau:
public void FuncA(String text){
w = (WebView) findViewById(R.id.webview);
w.evaluateJavascript("javascript:document.getElementById('math').innerHTML='"
+ text + "';", new ValueCallback<String>() {
@Override
public void onReceiveValue(String value) {
Log.d("value", value);
}
});
Trong FuncA mình dùng Log.d(“value”, value); để hiển thị giá trị value nhận được trong logcat.
Minh mún hỏi là đáng lý ra value nhận được phải là “this is value” trong logcat , nhưng mà mình lại nhận được giá trị là null.
Nhưng nếu
Nếu mình tạo một button, button này gọi đến FunA(“this is value”) thì lại nhận được kết quả đúng trong logcat là “this is value”
ko ai giúp hết
mình đã gửi đến 1 bạn làm về anroid để trả lời cho bạn.
Vì trong lúc gọi FuncA thì webview vẫn chưa được load xong…
bạn có hướng giải quyết không, mình muốn FuncA tự động được gọi tới.
Dùng cái này nhé.
stackoverflow.com
How to listen for a WebView finishing loading a URL?
uh để mình nghiên cứu, thanks
Ok , nhờ sự trợ giúp đỡ của bạn mình đã hiểu nguyên do và khắc phục được tình trạng trên . Cảm ơn nhiều