首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

Xamarin Android中没有名为"WebView.CreatePrintDocumentAdapter"的方法。这个方法是用于创建打印文档适配器的,但在Xamarin Android中,我们需要使用其他方法来实现类似的功能。

在Xamarin Android中,我们可以使用WebView的CreatePrintDocumentAdapterCompat方法来创建打印文档适配器。该方法返回一个PrintDocumentAdapterCompat对象,可以用于打印WebView的内容。

以下是一个示例代码,演示如何在Xamarin Android中使用WebView的打印功能:

代码语言:txt
复制
using Android.App;
using Android.OS;
using Android.Webkit;
using Android.Print;
using Android.Support.V4.Print;
using Android.Support.V7.App;

namespace XamarinAndroidPrintExample
{
    [Activity(Label = "PrintExample", MainLauncher = true)]
    public class MainActivity : AppCompatActivity
    {
        private WebView webView;

        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.activity_main);

            webView = FindViewById<WebView>(Resource.Id.webView);
            webView.Settings.JavaScriptEnabled = true;
            webView.LoadUrl("https://www.example.com");

            // 打印按钮点击事件
            var printButton = FindViewById<Button>(Resource.Id.printButton);
            printButton.Click += PrintButton_Click;
        }

        private void PrintButton_Click(object sender, EventArgs e)
        {
            // 创建打印文档适配器
            var printAdapter = webView.CreatePrintDocumentAdapterCompat("Print Example");

            // 打印选项
            var printOptions = new PrintAttributes.Builder()
                .SetMediaSize(PrintAttributes.MediaSize.IsoA4)
                .SetColorMode(PrintColorMode.Color)
                .Build();

            // 打印回调
            var printCallback = new PrintDocumentAdapter.PrintJobCompletionCallback
            {
                OnCompleted = (printJob) =>
                {
                    if (printJob.IsCompleted)
                    {
                        // 打印完成
                        Toast.MakeText(this, "打印完成", ToastLength.Short).Show();
                    }
                    else if (printJob.IsFailed)
                    {
                        // 打印失败
                        Toast.MakeText(this, "打印失败", ToastLength.Short).Show();
                    }
                }
            };

            // 创建打印任务
            var printManager = PrintManager.FromContext(this);
            printManager.Print("Print Example", printAdapter, printOptions)
                .OnComplete(printCallback);
        }
    }
}

在上述示例中,我们首先在布局文件中添加了一个WebView和一个打印按钮。然后,在代码中,我们启用了WebView的JavaScript功能,并加载了一个示例网页。当用户点击打印按钮时,我们使用CreatePrintDocumentAdapterCompat方法创建了打印文档适配器,并指定了打印选项。最后,我们使用PrintManager来创建打印任务,并通过回调函数处理打印完成或失败的情况。

这是一个简单的示例,演示了如何在Xamarin Android中使用WebView的打印功能。如果您需要更多关于Xamarin Android的开发知识,可以参考腾讯云的Xamarin Android开发文档:Xamarin Android开发文档

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

C#-XamarinAndroid项目开发(二)——控件应用

没错,这种设置方法,确实很绕,按钮按下事件和背景样式混在了一起设置,但在Android里,我们只能去适应它。...相信我,用Xamarin开发,你在农耕社会还有个犁耙,用AS开发,你会发现你只能用手挖。。。。 GridView 首先,AndroidGridView是我见过最奇葩列表使用方式。。。...其中重写Count属性需要特别注意,他代表我们列表显示数,他是需要赋值。这里事例为其定义了一个常数9。 接下来我们重点看下GetView方法。...GetView这个方法干了很多事,作为C#开发者,从字面上是很难理解它是干什么;不过我们可以联想思考,我们暂时把他理解为行导入事件,这样就很形象了吧。...因为,至于为什么会叫GetView,我想,大概是因为他即干了行绑定数据事,又干了行视图布局事,所以没有更合适命名,才这么叫吧。

1.3K40

C#-XamarinAndroid项目开发(一)——创建项目

答案很简单,因为网上开源样式里图片大多放在了drawable里,建立一个这样文件夹,绝对会减少我们工作量。...(这里有个编译器BUG,我们改名以后,编译器并没有同步,所以我们需要清理一下,再重新生成,如果还不成功,就删除obj文件夹,再重新生成) BaseActivity 通过上面的描述,我们初步了解了Xamarin...然后我们封装寻找资源方法;在Android项目里是由活动调用视图,即先有活动后有视图,所以在活动里找页面的控件也是倒装,那么这个寻找控件方法就相对代码会比较多,所以我们简单封装一下。...比如Android里定义ID名是这样android:id="@+id/btn_search"。我每次看这个@+id都感觉很奇葩,哈哈。...因为BaseActivity里寻找控件方法里,还封装了Click方法,所以我们还可以这样使用: Button btn_search = this.FindControl("btn_search

2.9K10

【Oracle】你Oracle没有开机自启?那是你没有这样操作!!

者个人研发在高并发场景下,提供简单、稳定、可扩展延迟消息队列框架,具有精准定时任务和延迟队列处理功能。自开源半年多以来,已成功为十几家中小型企业提供了精准定时调度方案,经受住了生产环境考验。...,由于读者完全是按照我安装方式安装Oracle数据库,也是将Oracle数据库安装在了CentOS 8虚拟机中,安装成功后,便关闭了虚拟机,等重新开启虚拟机时,Oracle数据库并没有自动启动,此时...安装Oracle数据库之后,当我们重启系统之后,使用Navicat连接Oracle数据库时,会出现如下提示信息。 ? 这是因为重启系统之后,Oracle数据库服务并没有自动重启。...[root@binghe121 ~]# netstat -nlp | grep 1521 [root@binghe121 ~]# 可以看到,并没有进程监听1521端口,说明Oracle数据库进程并没有启动...可以看到,并没有成功连接Oracle数据库,这是因为启动Oracle服务进程后,需要我们启动数据库。 使用oracle用户登录系统,并依次执行如下命令启动Oracle数据库。

92320

这个dataframe,有没有方法,可以转化成这样一个dataframe

一、前言 前几天在Python白银交流群【空翼】问了一个pandas处理Excel数据问题,提问截图如下: 下图是他原始数据部分截图: 他目标数据长下面的样子: 二、实现过程 这里【甯同学】...提出看上去是透视表,欲使用pd.pivot_table()方法解决。...后来【瑜亮老师】也给了一个代码,如下所示: 顺利地解决了粉丝问题。 三、总结 大家好,我是皮皮。...这篇文章主要盘点了一个Pandas处理问题,文中针对该问题,给出了具体解析和代码实现,帮助粉丝顺利解决了问题。 最后感谢粉丝【空翼】提问,感谢【Jun.】...、【论草莓如何成为冻干莓】、【瑜亮老师】给出思路和代码解析,感谢【Jun】、【Engineer】、【Python狗】等人参与学习交流。

79620

C#-XamarinAndroid项目开发(三)——发布、部署、打包

并且一个项目配置好一次以后,部署步骤和部署的人通常很固定,所以大部分开发者也没机会去学习它。 就算学会了部署开发者,如果长期不使用,也是很容易忘记部署方法。...所以,我们需要一篇文章来记录下部署方法,哈哈O(∩_∩)O。 部署准备 在部署XamarinAndroid项目前,我们先做一些准备工作。...首先,我们先打开项目属性,选择配置最重要选项——Android选项。 下图为开发调试阶段Android选项设置图: ?...创建完证书后,回到选择签名界面,会自动导入我们刚刚创建签名;如下图: ? 如果我们刚刚创建签名没有自动加载,那么我们可以到C盘找到这个签名,然后手动导入。...签名默认地址:C:\Users\Administrator\AppData\Local\Xamarin\Mono for Android\Keystore\KibaXamarin 拥有了签名后,我们点击

1.4K40

张高兴 Xamarin.Android 学习笔记:(二)“Hello World”

打开 Visual Studio 新建一个 Xamarin.Android 项目 “HelloAndroid”。...AndroidManifest.xml 则是 Android 应用配置文件,像活动,权限等都要在其中注册,但不需要手动注册,编译时 Xamarin 会自动完成。...MainActivity.cs   Android 项目中任何活动都要重写 onCreate() 方法,同样 Xamarin 也已经自动创建了一个符合 C# 命名规则 OnCreate() 方法。...和 Android 项目一样,活动创建完成后需要加载布局,SetContentView () 方法没变只不过符合了 C# 命名规则,将 Resource.Layout 下布局传入即可。...,在 Xamarin 中可以使用泛型方法 FindViewById() 来获取控件,需要传入一个 id 值。

1.6K40

Android webview转PDF方法示例

1.网上找了好多没有显示出来效果不错,后来看到调用手机打印预览,看了效果还不错,就打算使用系统打印服务预览下载 2....‘webView.createPrintDocumentAdapter()’得到打印PrintDocumentAdapter有了该类就可以使用onWrite方法写入制定文件,但是这个方法需要传入回调这个悲剧是这个回调方法是...hiden我们没办法调用 3,字怎么解决呢,有连个方法 3.1 使用此开源库替换自己sdk 中android.jar文件,就可以使用了 https://github.com/anggrayudi...= android.os.Build.VERSION_CODES.KITKAT) { /** * android 5.0之后,出于对动态注入字节码安全性德考虑,已经不允许随意指定字节码保存路径了,...PrintAttributes.Margins.NO_MARGINS) .build(); //打印所有界面 ranges = new PageRange[]{PageRange.ALL_PAGES}; printAdapter = webView.createPrintDocumentAdapter

1.3K31

Android中ListViewitem点击没有反应解决方法

如果stu_item.xml里面包括button或者checkbox等控件,默认情况下listitem会失去焦点,导致无法响应item事件,最常用解决办法是在stu_item.xml布局文件中设置...该属性是当一个为view获取焦点时,定义viewGroup和其子控件两者之间关系。...属性值有三种: beforeDescendants:viewgroup会优先其子类控件而获取到焦点 afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点...总结 以上所述是小编给大家介绍Android中ListViewitem点击没有反应,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家。...在此也非常感谢大家对ZaLou.Cn网站支持!

1.4K10

没有docker我真的不想动这样生信软件

configure --prefix=/home/jianmingzeng/biosoft/myBin make make install ~/biosoft/myBin/bin/samstat --help 但是这样安装受限于操作系统库文件...,大多数人是没有操作系统管理员权限,所以安装库文件特别的免麻烦,这也就是早期生物信息学初学者遇到最多bug,去搜索一个软件安装使用方法, 甚至彻夜不眠三天两夜都搞不定一个小小软件安装!...打包好二进制可执行软件 所以作者会提供打包好二进制可执行文件,下载即可使用它。...并不是说作为一个生信工程师,你需要学会那么多语言,其实你仔细想想看,你并没有学会C语言,仍然是在源代码安装大量软件。所以,对应各种编程语言依赖软件,同样是需要搞清楚常规安装方法即可。...,不过,有些软件仅仅是安装并没有用,还需要下载配套数据库,比如 HOMERmotif寻找,数据库文件也是几个G,如果是在海外,下载网速也是一个问题。

97331

张高兴 Xamarin.Android 学习笔记:(三)活动生命周期

本文将直接解释我写一个示例。示例目的在于展示 Android 活动在 Xamarin用法。如果有朋友对基础知识不太了解建议先学 Android 。   ...新建一个 Xamarin.Android 项目 ActivityStates。在项目中新建文件夹 Activities 用来存放活动。...说完活动、布局新建,接下来开始编辑代码,新建活动和布局代码很简单 NormalActivity.cs using Android.App; using Android.Content; using...由于我们需要把当前活动主题改为 Dialog 形式,按照一般 Android 项目,我们应该编辑 AndroidManifest.xml 文件,但在 Xamarin 项目中采用 C# 中特性(Attribute...>   而在主活动中我们需要重写活动生命周期7个方法,在 OnDestroy() 方法中,由于活动已经销毁,向 TextView 中输出完全没有意义,所以采用 Toast 通知方法来输出。

848110

没有性能瓶颈无限级菜单树应该这样设计

本文节选自《设计模式就该这样学》 1 使用透明组合模式实现课程目录结构 以一门网络课程为例,我们设计一个课程关系结构。...这里,有些小伙伴会有疑惑,为什么不用抽象方法?因为用了抽象方法,其子类就必须实现,这样便体现不出各子类细微差异。所以子类继承此抽象类后,只需要重写有差异方法覆盖父类方法即可。...[image.png] 透明组合模式把所有公共方法都定义在 Component 中,这样客户端就不需要区分操作对象是叶子节点还是树枝节点;但是,叶子节点会继承一些它不需要(管理子类操作方法方法,这与设计模式接口隔离原则相违背...()方法,还增加了list()方法。...[image.png] 安全组合模式好处是接口定义职责清晰,符合设计模式单一职责原则和接口隔离原则;缺点是客户需要区分树枝节点和叶子节点,这样才能正确处理各个层次操作,客户端无法依赖抽象接口(Component

60140

没有对比就没有伤害对比分析方法

女友通过对比分析方法来判断自己体重是不是出了问题。在数据分析中,我们通过对比分析方法,来追踪业务是否有问题。比如,我微信公众号日活跃率是4%,你说是高,还是低?这个日活跃率有问题吗?...这时候,就需要用对比分析方法来追踪业务是不是有问题,问题严不严重。 正所谓,没有对比就没有好坏(伤害)。 2.如何进行对比呢? 给出下面这4个图,你能得出什么信息?...1)和自己比 经验:可以是经验值或者平均值 比如这个月我微信公众号最近平均每天用户增长100人(新关注微信公众号的人数),用户每天在增长,是不是没有问题呢?...当我们面对一个问题时候,需要先判断这个问题是不是严重,然后才是去有针对性分析原因。 那么,如何判断一个问题是不是严重呢? 这时候,就需要用对比方法,和行业来对比判断了。...问题严重情况下,如何去分析呢? 这时候,就要用到多维度分析方法,下次我们再接着聊这个分析方法。 4.总结 1)对比分析方法用于追踪业务是否有问题 2)如何进行对比分析? 和自己比,和行业比 ----

1.1K20

笔记 | Xamarin

Android 期望专用文件存储在外部存储上特定目录中。 尽管这些文件称为“专用”,但它们仍然可见,并且可由设备上其他应用访问,Android没有对它们提供任何特殊保护。...在使用时候,ScrollView要求父容器给它分配固定大小,同时子元素并且有固定大小。这样,ScrollView才能根据各自大小计算滚动量。...这样,开发者就可以计算滚动进度,显示给用户。同时,利用ScrollView提供滚动结束事件Scrolled,可以提示用户,或者加载新内容。...arg1=111&arg2=222"; } 缺点: 不能拿到 C# 返回值, 若 js 想拿到方法返回值,只能通过 WebView loadUrl 方法去执行 js 方法把返回值传递回去,相关代码如下...prompt 对话框方法可以返回字符串类型返回值, 缺点: 协议制定比较麻烦,需要记录详细文档,但是不会存在漏洞问题 拦截 js 中几个提示方法,也就是几种样式对话框,在 js 中有三个常用对话框方法

23.9K20

软件打包,有没有更好方法?!

据我所知,目前有两种常见方法来分发软件包并创建运行环境。除此之外当然还有其他,而且很多方法难以准确分类。这里我们就先讨论最典型情况。...但如果没有包管理器支持,这些办法要么缺乏可扩展性(这还是最好情况),要么就是引发令人恼火错误。奇怪是,Windows 和 MacOS 等消费级操作系统居然将此作为默认方法。...有没有更好方法? 下面咱们捋一援理想构建系统基本要求: 可稳定复现构建:如果远程系统能够成功构建,那我们本地系统也应该可以。...远程托管二进制版本:这样就不必每次想要安装软件时,都劳烦自己本地 CPU 和硬盘。...所以,这种方法只适用于像亚马逊这样科技巨头,毕竟对他们来说这点投入绝对物有所值。但我们其他人呢? 我们能不能学两招? 老实说,我也不知道。

18750

这样方法让人很反感

更糟糕情况,参数列表参数名是arg1、arg2这种无意义命名,这样方法封装成jar给他人使用,对使用者来说很茫然,不知道如何使用。...如果一个方法参数列表个数大于等于3,就需要将这些参数封装到一个类中,使用这个类作为参数,这样对使用者来说容易很多。 冗长代码行 一个方法代码行数几十行,甚至上百行。...阅读这样方法,相信很多人心里是拒绝。冗长代码行像写作文不分段落一样,把各种论述杂糅到一起,根本看不明白想描述什么,而且这样方法一定做了不止一件事。...方法体要短小且只要一件事,做到职责单一,这样方法一目了然,易于阅读和理解。判断一个方法是否不止做了一件事,那就是看是否能再拆出一个方法。...对于这样深层次逻辑嵌套,可以使用先否定、合并逻辑方式去优化。如上面的伪代码不是先判断x==1嘛,可以先判断x!=1,y==2和z==3可以合并到一起,优化后伪代码如下。 if(x!

71170

C#移动跨平台开发(2)Xamarin移动跨平台解决方案是如何工作

Managed Callable Wrappers (MCW)   上面我们讲Dalvik 虚拟机是我们C#开发Android应用程序宿主,它通过ACW来调用我们用C#写方法。...对于C#开发Android应用程序来说,性能上面肯定是会有影响,但是影响有多大,我并没有做过具体测试,所以就不详述了。后面我们再细细去对比。...也就是说C#写IPhone应用程序和objective-c 写是一样。并且Xamarin团队保证在每一个IOS系统更新时间同步更新Xamarin.IOS这样我们就不用担心被滞后了。...小结   这仅仅是一个粗略介绍,Xamarin移动跨平台方案是如何来工作,还有太多我们没有涉及。...,当然在Xamarin.Forms不能够满足你要求时候,可以使用Xamarin.AndroidXamarin.IOSUI控件,这些也是Native,也就是说在UI方面不会有性能影响。

2.6K110
领券