Я загрузите PDF-файлы в WebView и установите источник как абсолютный путь к PDF-файлу, работает нормально, но мне нужно просмотреть его с помощью pdfjs, чтобы иметь панель инструментов.
Моя проблема, похоже, заключается в URL-адресе, который я указал в качестве источника принадлежащий webview/ путь к файлу, который я указываю view.html в папке pdfjs (которая находится в комплекте приложения).
Следующий код представляет собой веб-просмотр в файле page.xaml
Код: Выделить всё
Код: Выделить всё
Microsoft.Maui.Handlers.WebViewHandler.Mapper.AppendToMapping("newPdfView", (handler, view) =>
{
#if ANDROID
handler.PlatformView.Settings.JavaScriptEnabled = true;
handler.PlatformView.Settings.AllowFileAccess = true;
handler.PlatformView.Settings.AllowFileAccessFromFileURLs = true;
handler.PlatformView.Settings.AllowUniversalAccessFromFileURLs = true;
#else
if (handler.PlatformView is WebKit.WKWebView wkWebView)
{ wkWebView.Configuration.Preferences.SetValueForKey(Foundation.NSObject.FromObject(true), (Foundation.NSString)"allowFileAccessFromFileURLs");
}
#endif
});
#if IOS
var pdfFilePath = Foundation.NSBundle.MainBundle.PathForResource("pdfjs/web/viewer", "html");
var testPdfPath = Foundation.NSBundle.MainBundle.PathForResource("test", "pdf");
string path = $"file://{pdfFilePath}?file=file://{Path.Combine(FileSystem.Current.AppDataDirectory, "Cataloghi", pdf.Descrizione + ".pdf")}";
//path=$"file://{pdfFilePath}?file=file://{testPdfPath}"; This works with a test pdf in Resources/Raw
newPdfView.Source = new UrlWebViewSource{ Url=path};
#elif ANDROID
newPdfView.Source = $"file:///android_asset/pdfjs/web/viewer.html?file=file:{WebUtility.UrlEncode(Path.Combine(FileSystem.AppDataDirectory, "Cataloghi", pdf.Descrizione + ".pdf"))}";
#endif
Я попробовал изменить путь, но документ, кажется, ничего не загружает.
В Android это работает без проблем.
Подробнее здесь: https://stackoverflow.com/questions/793 ... ory-in-ios