Điều này là có thể. Để thực thi JavaScript và nhận được trả lời, bạn có thể làm như sau:
Xác định giao diện callback JavaScript trong mã của bạn:
class MyJavaScriptInterface {
public void someCallback(String jsResult) {
// this will be passed the local storage name variable
}
}
Đính kèm callback này để WebView của bạn:
MyJavaScriptInterface javaInterface = new MyJavaScriptInterface();
webView.addJavascriptInterface(javaInterface, "HTMLOUT");
Chạy cửa sổ gọi JavaScript của bạn .HTMLOUT.someCallback từ tập lệnh:
webView.loadUrl("javascript:(function() { var name = window.localStorage['name']; window.HTMLOUT.someCallback(name); })()");
Lưu ý - window.localStorage['name']
cũng giống như window.localStorage.getItem('name')
This post here on stackoverflow helped me
Bạn có thể cần phải sử dụng super.webView.addJavascriptInterface
hoặc super.addJavascriptInterface
để thêm giao diện. Bạn có thể cần sử dụng super.webView.loadUrl
hoặc super.loadUrl
để gọi điều này. Tất cả phụ thuộc vào nơi bạn sẽ gọi chúng từ đó.
Xin chào @Ross! Cảm ơn bạn đã trả lời! – Saxophonist
@Evandro Xin chào, tôi rất vui vì tôi có thể giúp đỡ. – Ross
@Ross Tôi biết đây là chủ đề cũ, nhưng bạn có thể chỉ cho tôi một repo có phương pháp này được triển khai đầy đủ trong plugin Cordova không? Tôi đang cố gắng sửa đổi Plugin thiết bị Cordova để sử dụng mã này nhưng tôi vẫn gặp lỗi. Tôi biết hầu như không có Java. Tôi rất thích nhìn thấy một ví dụ làm việc của mã này. : D –