(Xamarin的.窗体(IOS) PDF图像不显示



我用Xamrin Forms创建了一个跨平台应用程序。应用程序在Android中工作完美和UWP. 但是当加载IOS时图标不可见。
例如

<Image >
<Image.Source>
<OnPlatform x:TypeArguments="FileImageSource">
<On Platform="Android" Value="login_icon" />
<On Platform="UWP" Value="Images/login_icon.png" />
<On Platform="iOS" Value="login_icon" />
</OnPlatform>
</Image.Source>
</Image>   

我已经添加了我所有的图像在PDF格式资产目录. 图像的大小也是正确的。但由于某些原因,图标没有显示。
但是,如果我将这些图像添加到资源中为。png他们出现。官方文件说这种方法是不赞成的。

编辑:在模拟器中一切看起来都很好,但当我使用真实设备进行测试时,这些图标是不可见的。

你可以使用customrenderer创建一个自定义的webview来显示pdf文件。

代码:

public class CustomWebView : WebView
{
public static readonly BindableProperty UriProperty = BindableProperty.Create (propertyName:"Uri",
returnType:typeof(string),
declaringType:typeof(CustomWebView),
defaultValue:default(string));

public string Uri {
get { return (string)GetValue (UriProperty); }
set { SetValue (UriProperty, value); }
}
}

在IOS:

[assembly: ExportRenderer (typeof(CustomWebView), typeof(CustomWebViewRenderer))]
namespace DisplayPDF.iOS
{
public class CustomWebViewRenderer : ViewRenderer<CustomWebView, UIWebView>
{
protected override void OnElementChanged (ElementChangedEventArgs<CustomWebView> e)
{
base.OnElementChanged (e);

if (Control == null) {
SetNativeControl (new UIWebView ());
}
if (e.OldElement != null) {
// Cleanup
}
if (e.NewElement != null) {
var customWebView = Element as CustomWebView;
string fileName = Path.Combine (NSBundle.MainBundle.BundlePath, string.Format ("Content/{0}", WebUtility.UrlEncode (customWebView.Uri)));
Control.LoadRequest (new NSUrlRequest (new NSUrl (fileName, false)));
Control.ScalesPageToFit = true;
}
}
}
}

下面是关于customrenderer https://learn.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/custom-renderer/introduction的文档

相关内容

  • 没有找到相关文章

最新更新