Webview显示资产的图像

问题描述 投票:1回答:1

我正在尝试使用WebView显示一些自定义生成的html,它试图显示包含在资产中的图像。

[目前,我只想让此功能在Android系统中起作用。 (在UWP头中,我使用RichTextBlock完成相同的操作。但是控件InlineUIContainer在Uno中尚不可用。)

在Android头中,我已将这些图像的“生成操作”设置为AndroidAsset(图像位于目录Assets中]

我已经尝试通过以下方式从(当场)生成的html中引用这些图像:

<img src="imgName.png" />
<img src="ms-appdata:///imgName.png" />
<img src="ms-appdata:///local/imgName.png" />
<img src="file:///imgName.png" />

这些工作都没有。我也尝试将html写入本地文件(而不是使用NavigateToString)并导航到该文件,但无济于事。

根据'google',在Xamarin中以其WebView来执行此操作的方法是使用LoadDataWithBaseUrl(null, ...),但是该方法在UWP / Uno的WebView中不可用...

android xamarin xamarin.android uno-platform
1个回答
0
投票
本机WebView没有直接公开,但是您可以轻松访问它:

XAML:

<Page x:Class="WebViewTest.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d"> <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> <WebView x:Name="XamlWebView" /> </Grid> </Page>

隐藏代码:

#if !NETFX_CORE
using Uno.UI;
#endif
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;

namespace WebViewTest
{
    public sealed partial class MainPage : Page
    {
        public MainPage()
        {
            this.InitializeComponent();
            this.Loaded += MainPage_Loaded;
        }

        private void MainPage_Loaded(object sender, RoutedEventArgs e)
        {
#if __ANDROID__
            var nativeWebView = XamlWebView.FindFirstChild<Android.Webkit.WebView>();
            nativeWebView.LoadDataWithBaseURL(null, ...)
#endif
        }
    }
}

通过这种方式,您可以应用您描述的方法。

© www.soinside.com 2019 - 2024. All rights reserved.