Как я могу запустить функции React JS в веб-просмотре из моего кода Android? - PullRequest
0 голосов
/ 22 января 2019

Итак, у меня есть веб-приложение React-Typescript, которое я размещаю в WebView в своем приложении для Android.

Я просто пытаюсь передать данные из клиента Android в Webview.Однако тот факт, что это приложение React, которое создается с помощью веб-пакета, кажется сложным.

Следуя инструкциям из этого стекового ответа: Передача данных из класса java в 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?

1 Ответ

0 голосов
/ 22 января 2019

Вам нужно включить localStorage в настройках (аналогично setJavaScriptEnabled) например

webview.getSettings().setDomStorageEnabled(true);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...