Xamarin Android没有这样的方法WebView.CreatePrintDocumentAdapter

时间:2017-03-16 04:03:40

标签: android xamarin webview xamarin.android

我正在尝试使用简单的应用程序来测试打印WebView页面。

以下是我的简单代码

WebView webView = new WebView(this);
webView.LoadUrl("https://www.google.com");
PrintDocumentAdapter adapter = webView.CreatePrintDocumentAdapter("test");
PrintManager printMgr = (PrintManager)GetSystemService(PrintService);
printMgr.Print("printTest", adapter, null);
myWebView = webView;

但是,它正在WebView.CreatePrintDocumentAdapter("test")方法中生成异常,如下所示。

Java.Lang.NoSuchMethodError: no method with name='createPrintDocumentAdapter' signature='(Ljava/lang/String;)Landroid/print/PrintDocumentAdapter;' in class Landroid/webkit/WebView;

请注意,我已在Android清单中包含互联网和网络状态权限。是什么造成的?如果此异常阻止它,我怎么能创建打印功能?

我使用的设备是Samsung SM-G7102(Android 4.4 - API 19)

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:5)

API 21中添加了

CreatePrintDocumentAdapter(String documentName)

您可以在运行时进行VERSION.SdkInt检查并调用相应的方法:

if (Android.OS.Build.VERSION.SdkInt >= Android.OS.BuildVersionCodes.Lollipop) 
    adapter = webView.CreatePrintDocumentAdapter("test");
 else 
    adapter = webView.CreatePrintDocumentAdapter();

re:https://developer.android.com/reference/android/print/PrintDocumentAdapter.html