Есть ли способ поместить JavaScript embed / content в Xamarin Forms для WebViews? - PullRequest
0 голосов
/ 14 апреля 2020

Я новичок в Xamarin. Я делаю проект с использованием MasterPages, который показывает некоторые из моих таблиц Dashboards, и раньше у меня никогда не было проблем с использованием ASP. NET для вставки такого рода панелей мониторинга.

Я хочу знать, возможно ли это чтобы поместить в мои страницы контента с помощью XamarinForms панель инструментов из Tableau Publi c, похоже, для этого используется API JS.

Вот сам код:

<div class='tableauPlaceholder' id='viz1586875192729' style='position: relative'>
    <noscript>
        <a href='#'>
            <img alt=' ' src='https:&#47;&#47;public.tableau.com&#47;static&#47;images&#47;Da&#47;DashboardEBITDAEFATURAMENTO1_0_3revfinal&#47;Painel4&#47;1_rss.png' style='border: none' />
        </a>
    </noscript>
    <object class='tableauViz'  style='display:none;'>
        <param name='host_url' value='https%3A%2F%2Fpublic.tableau.com%2F' />
        <param name='embed_code_version' value='3' />
        <param name='site_root' value='' />
        <param name='name' value='DashboardEBITDAEFATURAMENTO1_0_3revfinal&#47;Painel4' />
        <param name='tabs' value='no' />
        <param name='toolbar' value='yes' />
        <param name='static_image' value='https:&#47;&#47;public.tableau.com&#47;static&#47;images&#47;Da&#47;DashboardEBITDAEFATURAMENTO1_0_3revfinal&#47;Painel4&#47;1.png' />
        <param name='animate_transition' value='yes' />
        <param name='display_static_image' value='yes' />
        <param name='display_spinner' value='yes' />
        <param name='display_overlay' value='yes' />
        <param name='display_count' value='yes' />
    </object>
</div>

<script type='text/javascript'>
var divElement = document.getElementById('viz1586875192729');                    
var vizElement = divElement.getElementsByTagName('object')[0];                   

if ( divElement.offsetWidth > 800 ) { vizElement.style.width='1100px';vizElement.style.height='627px';} 
else if ( divElement.offsetWidth > 500 ) { vizElement.style.width='1100px';vizElement.style.height='627px';} 
else { vizElement.style.width='100%';vizElement.style.height=(divElement.offsetWidth*1.77)+'px';}                    

var scriptElement = document.createElement('script');                    
scriptElement.src = 'https://public.tableau.com/javascripts/api/viz_v1.js';
vizElement.parentNode.insertBefore(scriptElement, vizElement);
</script>

Единственное, что я мог на самом деле получить, - это создать WebView внутри XAML, а затем вставить URL-адрес исходного веб-сайта следующим образом:

<ContentPage.Content>
    <StackLayout>
        <WebView x:Name="Browser"></WebView>
    </StackLayout>
</ContentPage.Content>

И затем на моем CS я сделал это

public FaturamentoView()
{
    InitializeComponent();
    Browser.WidthRequest = 1000;
    Browser.HeightRequest = 1000;
    Browser.Source = "https://public.tableau.com/profile/fernando3479#!/vizhome/RelatrioFATURAMENTO1_0_2/RelatrioFaturamento";

Но все же он показывает только веб-визуализацию, я хочу использовать код JS, есть ли способ?

...