вы можете сделать это.Во-первых, вам нужно добавить интерфейс javascript к вашему веб-представлению следующим образом.Допустим, вы загружаете url в каком-то действии под названием FormDetailActivity:
final FormBridge formBridge = new FormBridge(FormDetailActivity.this);
mWebView.addJavascriptInterface(formBridge, "Android");
formBridge - это экземпляр класса, в котором записаны все методы, вызываемые из js.
public class FormBridge extends Activity {
private static final String TAG = "FormBridge";
Context mContext;
private FormDetailActivity mFormActivity;
/**
* Instantiate the interface and set the context
*/
public FormBridge(Context c) {
mContext = c;
mFormActivity = (FormDetailActivity) mContext;
}
@JavascriptInterface
public String getLocalStorageFromJs(String someStringFromJs) {
//here you'll get the string from js
}
}
И чтобы передать ключ из java в ваш js, вам нужно создать метод в js, принимающий параметр ключа, а затем вы можете вызвать его следующим образом:
mWebView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
view.loadUrl("javascript:getStringFromLocalStorage('"+key+"')");
}
});
И затем вызвать этот метод из вашего js как:
function getStringFromLocalStorage(key){
Android.getLocalStorageFromJs(localStorage.getItem(key));
}