Мобильное представление не отображается для встроенного отчета Powerbi - PullRequest
0 голосов
/ 19 мая 2018

Мы создали отчет PowerBI, содержащий как настольную версию, так и мобильную версию.Он показывает рабочий стол и вид pone правильно, когда мы тестируем следующий образец сайта после размещения правильной информации.

https://microsoft.github.io/PowerBI-JavaScript/demo/v2-demo/index.html

Но когда мы открываем веб-сайт на мобильном устройстве, он по-прежнему показывает версию отчета для настольного компьютера.Используемая версия файла powerbi.js - «powerbi-client v2.5.1».

Используемый HTML и javascript представлен ниже. Мы также добавляем «& isMobile = true» с URL-адресом отчета для встраивания.Мы пропускаем какие-либо ссылки, чтобы показать мобильную версию.

<html>
<head>
</head>
<body>
  <div id="reportContainer" style="width: 100%; height: 610px" aria-atomic="True" aria-multiline="True" aria-multiselectable="True" aria-orientation="vertical">
  </div>
  <script src="~/Scripts/powerbi.js"></script>

  <script src="https://code.jquery.com/jquery-3.2.1.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script>

  <script>
    $(document).ready(function() {    
      var txtAccessToken = "@Model.EmbedToken.Token";   
      var txtEmbedUrl = "@Html.Raw(Model.EmbedUrl)";
      var txtEmbedReportId = "@Model.Id";        
      var tokenType = $('input:radio[name=tokenType]:checked').val();
   
      var models = window['powerbi-client'].models;
  
      var permissions = models.Permissions.All;

      var config = {
        type: 'report',
        tokenType: tokenType == '0' ? models.TokenType.Aad : models.TokenType.Embed,
        accessToken: txtAccessToken,
        embedUrl: txtEmbedUrl,
        id: txtEmbedReportId,
        permissions: permissions,
        settings: {
          layoutType: models.LayoutType.MobilePortrait
        }
      };

      // Get a reference to the embedded report HTML element

      var embedContainer = $('#reportContainer')[0];

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

      // Report.off removes a given event handler if it exists.
      report.off("loaded");

      // Report.on will add an event handler which prints to Log window.
      report.on("loaded", function() {
        Log.logText("Loaded");
      });

      report.on("error", function(event) {
        Log.log(event.detail);

        report.off("error");
      });

      report.off("saved");
      report.on("saved", function(event) {
        Log.log(event.detail);
        if (event.detail.saveAs) {
          Log.logText('In order to interact with the new report, create a new token and load the new report');
        }
      });
    });
  </script>
</body>
</html>

1 Ответ

0 голосов
/ 23 мая 2018

Проблема решена.Я добавлял isMobile = true в свойство конфигурации embededUrl.

report.EmbedUrl = report.EmbedUrl + "& isMobile = true";

Нам не нужно явно добавлять "& isMobile = true",этот параметр будет автоматически обновляться в URL-адресе iframe.

...