我目前正在为我们的APP创建一个手册页面,可以从许多不同的页面调用,并且根据从中调用的页面调用,它将显示该页面的相关手册。最初我在此页面中添加了多个PDF。但是,在webview中加载的所有PDF文件都非常慢。最重要的是,当我向下滚动以查看其他手册,然后返回到页面顶部时,页面顶部的手动PDF将不得不重新加载,花费更多时间。 IOS中的相同PDF文件加载速度更快Android,但由于其性能,Windows手机几乎无法使用。
帮助打败此问题我将所有PDF文件转换为.PNG文件。这不仅降低了文件大小,而且还允许它们加载更快,并保持在页面上加载!
但是,如果可能的话,我希望这些手册是PDF文件。有没有办法将PDF文件添加到应用程序,但是快速加载,保持加载在页面上?
此外,当涉及到PDF格式加载时,是否有其他人面临我的问题。
以下是我添加手册的代码:
<ListView x:Name="MyScrollViewer" ScrollViewer.ZoomMode="Enabled" ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollBarVisibility="Visible" ScrollViewer.VerticalScrollMode="Enabled" ScrollViewer.HorizontalScrollMode="Auto">
<ListViewItem>
<Image Name="HelpManual" Source="{StaticResource BlankPage}" Width="{Binding Path=ViewportWidth, ElementName=MyScrollViewer}"/>
</ListViewItem>
<ListViewItem>
<Image Name="HelpManual2" Source="{StaticResource BlankPage}" Width="{Binding Path=ViewportWidth, ElementName=MyScrollViewer}"/>
</ListViewItem>
<ListViewItem>
<Image Name="HelpManual3" Source="{StaticResource BlankPage}" Width="{Binding Path=ViewportWidth, ElementName=MyScrollViewer}"/>
</ListViewItem>
</ListView>
每个PNG手册的来源都在页面资源中设置如下:
<BitmapImage x:Key="BlankPage" UriSource="" />
<BitmapImage x:Key="Manual1" UriSource="Assets\AppPages\HelpManuals\App-User-Guide-v1.4_Page_01.png" />
<BitmapImage x:Key="Manual2" UriSource="Assets\AppPages\HelpManuals\App-User-Guide-v1.4_Page_02.png" />
<BitmapImage x:Key="Manual3" UriSource="Assets\AppPages\HelpManuals\App-User-Guide-v1.4_Page_03.png" />
然后在“空白页面”的背景C#代码中更改每个图像的来源。 (这不算什么),需要哪个手册。 BackGround代码如下:
void Page_LoadComplete(object sender, RoutedEventArgs e)
{
var lastPage = Frame.BackStack.Last().SourcePageType;
if (lastPage.Name == "MainPage" || lastPage.Name == "ManualsPage")
{
HelpManual.Source = (ImageSource)Resources["Manual1"];
HelpManual2.Source = (ImageSource)Resources["Manual2"];
HelpManual3.Source = (ImageSource)Resources["Manual3"];
}
else if (lastPage.Name == "BluetoothPage")
{
HelpManual.Source = (ImageSource)Resources["Manual1"];
HelpManual2.Source = (ImageSource)Resources["Manual2"];
HelpManual3.Source = (ImageSource)Resources["Manual1"];
HelpManual4.Source = (ImageSource)Resources["Manual4"];
}
else if (lastPage.Name == "PowerPage")
{
HelpManual.Source = (ImageSource) Resources["Manual3"];
}
任何帮助都会受到极大的赞赏,以帮助提高PDF加载性能!