Как передать данные из общего проекта xamarin в HTML - PullRequest
0 голосов
/ 07 ноября 2019

У меня есть веб-просмотр на моей странице, где я показываю диаграмму (Fusion Chart). Я написал html-страницу с функцией js следующим образом:

<html lang="en">
<head>
<script src="file:///android_asset/fusioncharts.js"></script>
<script src="file:///android_asset/fusioncharts.charts.js"></script>
</head>
<body>
<div id="chart-container"></div>

<script>
    function loadChart(chartData) {

        const dataSource = {
            chart: {
                theme: "fusion",
                "showPlotBorder": "1",
                "plotBorderColor": "#ffffff"
            },
            data: chartData
        };

        FusionCharts.ready(function () {
            var myChart = new FusionCharts({
                type: "column2d",
                renderAt: "chart-container",
                width: "100%",
                height: "100%",
                dataFormat: "json",
                dataSource
            }).render();
        });
    }

    loadChart(chartData);
</script>
</body>
</html>

Мне нужно передать данные в функцию loadchart из моего общего проекта с помощью моего веб-просмотра. Возможно ли это?

1 Ответ

1 голос
/ 14 ноября 2019

Существует множество способов сделать это на Android, хотя я бы предостерег вас от необходимости хорошо протестировать его на разных устройствах в зависимости от того, какой браузер по умолчанию используется для WebView.

К счастью, поскольку вы используетеXamarin Forms, вы можете просто использовать функцию оценки Javascript, которая позволяет вам просто поместить свой JS-код в функцию. А затем время правильно, и вы можете вызвать функцию JS, которая будет принимать значения из вашего C #.

Вот документация MS по функциям Eval() или EvaluateJavaScriptAsync().

Здесь - некоторые примерыего использования:

webView.EvaluateJavaScriptAsync(string.Format("document.getElementById(\"{0}\").value = \"{1}\"", "langs1", from));
webView.EvaluateJavaScriptAsync(string.Format("DDMENU(0)"));

Дайте мне знать, если у вас есть какие-либо вопросы!

...