Добавление html к веб-представлению выглядит как пустые формы iOS xamarin - PullRequest
0 голосов
/ 30 апреля 2018

У меня есть веб-представление в проекте Xamarin.forms, и оно заполнено неким HTML, который загружается из базы данных.

Ниже приведен код XAML, который создает веб-представление. Возможно, стоит отметить, что это внутри GridView.

<WebView Grid.Row="2" x:Name="policyView" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand" />

И это код cs, который загружает и устанавливает источник веб-представления, чтобы он мог отображать HTML.

     public async void LoadPolicy(policy_procedure policy)
    {
        busyIndicator.IsVisible = true;
        busyMessage.Text = "Loading Policy";

        var htmlSource = new HtmlWebViewSource();

        htmlSource.Html = await ViewModelLocator.ConvertPolicy(policy);// returns the html as a string

        policyView.Source = htmlSource;

        busyIndicator.IsVisible = false;
    }

Этот код отлично работает для Android и отображает содержимое HTML без каких-либо проблем. Тем не менее, при работе на iOS я просто получаю пустой экран, и я не уверен, почему это происходит. Я попытался установить горизонтальные параметры на fillAndExpand аналогично с вертикальными параметрами. Мой вопрос: как сделать так, чтобы HTML-код появлялся на iOS?

Спасибо.

Ответы [ 2 ]

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

Код ниже, который я тестировал для iOS. Вы можете настроить его в соответствии с вашими требованиями.

 <ContentPage.Content>
                    <StackLayout BackgroundColor="Teal" TranslationY="64">
                 <Grid>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="*"/>
                             <RowDefinition Height="Auto"/>
                                          </Grid.RowDefinitions>
                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="*"/>
                            <ColumnDefinition Width="*"/>
                        </Grid.ColumnDefinitions>
                        <Label Grid.Row="0" Grid.Column="0" BackgroundColor="Silver" Text="tets test" HeightRequest="30" 
        HorizontalOptions="FillAndExpand"/>
                        <WebView Grid.Row="1" Grid.Column="1" BackgroundColor="Red" x:Name="webView"
        VerticalOptions="FillAndExpand"  HeightRequest="300"
        HorizontalOptions="FillAndExpand" /> 
                    </Grid>
                       </StackLayout>
                </ContentPage.Content>

webview iOS screenshot

0 голосов
/ 30 апреля 2018

Это происходит потому, что вы не указали AppTransportSecurity (ATS). Перейдите в ваш info.plist и добавьте разрешение.

<key>NSAppTransportSecurity</key>  
<dict> 
   <key>NSAllowsArbitraryLoads</key><true/>  
</dict> 

для справки: https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...