私のサーバーからpdfストリームをダウンロードします。私のアプリでは、pdfとしてローカルフォルダにbytearrayを保存します。しかし、私がwebviewで開くと、白いページが表示されます。Xamarin.formsのPDFをWebviewで表示できない
私はこの例に従いました:https://developer.xamarin.com/recipes/cross-platform/xamarin-forms/controls/display-pdf。ここで
は私のXAMLでcustomwebviewである:ここで
<local:CustomWebView x:Name="customView" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand" />
は、カスタムビューの私のコードです:
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); }
}
}
これは、PDFバイト配列を取得し、それをローカルに保存するための私の方法です。
private async void ReadPDF()
{
var response = CommonLibrary.Helpers.HTTPClientHelper.DownloadPDF(AccountBL.AccessToken, APISettings.APIURI("api/booking/pdf"));
var streamContent = response.Content as System.Net.Http.StreamContent;
var bytes = CommonLibrary.Helpers.FileHelper.ReadBytes(await streamContent.ReadAsStreamAsync());
var dir = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
var fileName = "test.pdf";
CommonLibrary.Helpers.FileHelper.WriteFileFromByteArray(bytes, dir, fileName);
customView.Uri = System.IO.Path.Combine(dir, fileName);
}
私に何かが不足していますか?
ためCustomRendererですが、あなたはそれがロードの問題や表示の問題だかどうかを確認するために、あなたのWebViewのウェブサイトに行くことになってみましたか? – Jaxi
こんにちはJaxi、あなたは正しいです。通常のサイトも読み込まれません。あなたはちょうどcustomWebviewを設定する必要があります。私は正しいですか? – Yaza
こんにちはJaxi、ソースプロパティ - > customView.Source = "http://www.google.nl"を設定すると、通常のサイトが読み込まれます。ソースをpdfの場所に設定すると、動作しません。 – Yaza