因此,我有一个React-Typescript Web应用程序,该应用程序托管在Android应用程序的WebView中。
我只是想将数据从Android客户端传递到Webview。 但是,这是一个使用webpack构建的React应用程序这一事实似乎使事情变得复杂。
按照从以下堆栈响应中找到的说明进行操作:Passing data from java class to Web View html
我试图在Index.tsx中添加一个函数,并像下面这样从andoird调用它:
webview.getSettings().setJavaScriptEnabled(true);
webview.loadUrl("file:///android_asset/test.html");
webview.setWebViewClient(new WebViewClient(){
public void onPageFinished(WebView view, String url){
webview.loadUrl("javascript:init('" + theArgumentYouWantToPass + "')");
}
});
但是找不到该功能。我的下一个想法是将其添加到Index.Html,但是随后我需要以某种方式存储数据,以便可以从我的React代码中引用它。
我尝试像这样使用本地存储:
<script type="text/javascript">
function init(val)
{
window.localStorage.setItem("key", val);
}
</script>
我尝试了此操作,并且没有窗口前缀,但这两次都给我一个错误,提示我试图在空引用上调用setItem。
有人知道我如何将数据从Android发送到我的React应用吗?
答案 0 :(得分:1)
您需要在设置中启用localStorage
(类似于setJavaScriptEnabled
),例如
webview.getSettings().setDomStorageEnabled(true);