Встраивание Power BI в Xamarin.Forms WebView - PullRequest
0 голосов
/ 30 января 2019

У меня проблемы с встраиванием моего защищенного отчета в мое приложение Xamarin.Forms с использованием WebView.Я понимаю, что Power BI Embedded можно загружать на веб-страницу с помощью JavaScript API.Моя логика заключалась в том, что это может быть достигнуто в Xamarin.Forms через WebView.

У меня есть доступ к токену вставки Power BI, URL-адресу для встраивания и идентификатору отчета.Мой текущий метод заключается в сохранении локального файла HTML с необходимыми параметрами для JavaScript в WebView для отображения встроенного отчета.

Я использую следующий JavaScript, чтобы попытаться загрузить отчет в локальный HTML:

<script>
    // Read embed application token from Model
    var accessToken = "<<ACCESS_TOKEN>>"

    // Read embed URL from Model
    var embedUrl = "<<EMBED_URL>>";

    // Read report Id from Model
    var embedReportId = "<<REPORT_ID>>";

    // Get models. models contains enums that can be used.
    var models = window['powerbi-client'].models;

    var config = {
        type: 'report',
        tokenType: models.TokenType.Embed,
        accessToken: accessToken,
        embedUrl: embedUrl,
        id: embedReportId,
        permissions: models.Permissions.All,
        settings: {
            layoutType: models.LayoutType.MobilePortrait
        }
    };

    // Get a reference to the embedded report HTML element
    var reportContainer = $('#reportContainer')[0];

    // Embed the report and display it within the div container.
    var report = powerbi.embed(reportContainer, config);
</script>

В этом фрагменте указаны все необходимые библиотеки JavaScript.

Когда страница инициализирована, WebView содержит HTML-код с отчетом, который не отображается в назначенном <div>.Я подозреваю, что JavaScript для загрузки встроенного отчета не запускается в Xamarin WebView.

Можно ли встраивать защищенные отчеты в приложение Xamarin.Forms?Является ли мой подход правильным способом достижения этого?Или есть лучший способ сделать это?

...