30/09/2018, 18:56

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”

terrypaton viết 21:06 ngày 30/09/2018

ko ai giúp hết

vũ xuân quân viết 20:59 ngày 30/09/2018

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…

terrypaton viết 21:10 ngày 30/09/2018

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
Janusz

How to listen for a WebView finishing loading a URL?

android, android-webview
asked by Janusz on 12:28PM - 30 Jun 10

terrypaton viết 21:01 ngày 30/09/2018

uh để mình nghiên cứu, thanks

terrypaton viết 21:08 ngày 30/09/2018

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

Bài liên quan
0