簡體   English   中英

如何從我的 Android 代碼在 webview 中運行 React JS 函數?

[英]How can I run React JS functions in a webview from my Android code?

所以我有一個 React-Typescript webapp,我在我的 Android 應用程序的 WebView 中托管它。

我只是試圖將數據從 Android 客戶端傳遞到 Webview。 然而,這是一個使用 webpack 構建的 React 應用程序這一事實似乎使事情變得復雜。

遵循從此堆棧響應中找到的說明:將數據從 java 類傳遞到 Web 視圖 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 應用程序嗎?

您需要在設置中啟用localStorage (類似於setJavaScriptEnabled )例如

webview.getSettings().setDomStorageEnabled(true);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM