Обертка Dart над библиотекой js и использование ее в приложении флаттера - PullRequest
0 голосов
/ 14 декабря 2018

Проще говоря, я хочу сделать небольшое приложение для обмена валюты (проект для домашних животных - я хочу бесплатный API (1000 запросов в месяц, включая больше валюты, является идеальным вариантом)).Мне не нравятся бесплатные API, которые я нашел до сих пор, но я нашел этот сайт https://bg.coinmill.com/, и я хочу использовать его для своих целей.Читая ответ на похожий вопрос:

Единственный способ использовать JS во Flutter - это использовать WebView.

Dart компилируется в JS только для приложений браузера, для Flutter компилируется>в машинный код.

конвертируйте код js непосредственно в dart, используя пакет js

пакет JS не конвертирует JS, он просто создает прокси для функций JS, чтобы> иметь возможность вызывать их изDart, но это также поддерживается только в веб-приложениях Dart.

Проще говоря, это невозможно без некоторых ошибок компиляции и некоторых обходных путей.Однако https://github.com/pichillilorenzo/flutter_inappbrowser выглядит многообещающе.Встраивание веб-страницы, которая будет выглядеть ужасно, и я не буду иметь никакого контроля над пользовательским интерфейсом / настройками.Мои варианты сейчас ищут другой API свободной валюты или пытаются найти обходной путь.Я склоняюсь к другому API, но не уверен, какой именно.Есть предложения?

Ответы [ 2 ]

0 голосов
/ 14 декабря 2018

Итак, что вы на самом деле хотите сделать, так это использовать этот веб-сайт для конвертации валюты в фоновом режиме (введите значение, нажмите «Конвертировать»), а затем отобразите результат в приложении Flutter?Для этого вам не нужен javascript.

После входа, нажав кнопку отправки, сайт просто перенаправляет вас на другую страницу (запрос GET) с таким URL-адресом:

https://bg.coinmill.com/CAD_USD.html?CAD=22

Используйте библиотеку dart http, чтобы выполнить тот же запрос с правильными параметрами валюты / значения.Результат запроса содержит исходный код веб-страницы.

Вместо отображения веб-страницы вам просто нужно прочитать нужное значение из исходного кода веб-страницы:

<div id="currencyBox1">
<input class="currencyField" ... value="16.46" ...>
<a href="/USD_calculator.html">САЩ долар (USD)</a>
</div>
0 голосов
/ 14 декабря 2018

Итак, насколько я понимаю ваш вопрос, у вас есть библиотека js, и вы хотите использовать ее из Dart?

Если вопрос так, да, вы можете сделать это с помощью Dart JS Intertop.Более подробная информация в ссылке .

Редактировать

Да, вы правы, вы можете вызывать js из Flutter только с помощью функции evalJavascriptот flutter_webview_plugin.

...