首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xamarin表单: PDF在Android平台上不起作用

Xamarin表单: PDF在Android平台上不起作用
EN

Stack Overflow用户
提问于 2020-06-25 05:03:51
回答 1查看 329关注 0票数 0

基于此链接:https://www.adobe.com/support/products/enterprise/knowledgecenter/media/c4611_sample_explain.pdf我已经尝试显示此处列出的https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/webview?tabs=windows

我在iOS上没有问题,但在安卓上这似乎不起作用。这是具体的代码,实际上并不多。

代码语言:javascript
复制
        {
            var browser = new WebView();            
            browser.Source = "https://www.adobe.com/support/products/enterprise/knowledgecenter/media/c4611_sample_explain.pdf";            
            Content = browser;
        }

我想我们不再需要PDFJ来让PDF在Android平台上工作了。这仍然是真的吗?

EN

回答 1

Stack Overflow用户

发布于 2020-06-25 10:50:41

您可以使用Google PDF Viewer在线阅读您的pdf。首先,在PCL文件夹中创建一个自定义的webview。

代码语言:javascript
复制
   public class MyWebview:WebView
    {
    }

然后在WebPage.cs中使用它

代码语言:javascript
复制
  public class WebPage : ContentPage
    {
        public WebPage()
        {
            var browser = new MyWebview();
           
            Content = browser;
        }
    }

在android文件夹中为您的webview创建自定义渲染器。

代码语言:javascript
复制
[assembly: ExportRenderer(typeof(WorkingWithWebview.MyWebview), typeof(MyWebViewRenderer))]
namespace WorkingWithWebview.Android
{
   public class MyWebViewRenderer:WebViewRenderer
    {
        Context _context;

        public MyWebViewRenderer(Context context) : base(context)
        {
            _context = context;
        }
        protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.WebView> e)
        {
            base.OnElementChanged(e);
            var settings=Control.Settings;
            settings.JavaScriptEnabled = true;
            settings.SetPluginState(WebSettings.PluginState.On);

            Control.SetWebViewClient(new MyWebviewClient());

           

                  string pdf = "https://www.adobe.com/support/products/enterprise/knowledgecenter/media/c4611_sample_explain.pdf";
            Control.LoadUrl("https://drive.google.com/viewerng/viewer?embedded=true&url=" + pdf);
        }
    }

    internal class MyWebviewClient : WebViewClient
    {
        public override bool ShouldOverrideUrlLoading(global::Android.Webkit.WebView view, string url)
        {
            return false;
        }
    }
}

下面是运行GIF的代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62564046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档