介绍在Titanium中,将WebView中通过canvas绘制的图像保存为文件的方法。
用户通过canvas所绘制的图像,在很多时候需要保存为文件。如何将WebView的canvas数据传递给Titanium有2个方法。
1.在html文件中(包含canvas标签的html文件)通过JavaScript(Titanium.App.fireEvent)通信将canvas的数据作为该事件的参数传递过去。
2.在Titanium的JS中只用WebView的evalJS方法,调用html文件中能够返回绘制的canvas图像数据的JavaScript。
第一种方法以前提到过了。这里我们说说第2中方法。
首先我们需要使用能够返回canvas的图像数据的toDataURL()方法。但是有一个问题是toDataURL()方法返回的是通过base64加密的字符串,在这段字符串的开头是mimetype
如:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABcIAAAQqCAYAAABk7....
通过replace方法将toDateURL()返回的字符串进行处理。消除mimetype之后,大概是这个样样子的:
iVBORw0KGgoAAAANSUhEUgAABcIAAAQqCAYAAABk7....
处理内容整理后大概是以下这样的一个函数:
function output(){
var cvs = document.getElementById( "stage" );
var src = cvs.toDataURL("image/png").replace(/^.*,/,'');
return src;
}
通过这个函数返回的值,我们变换后就能保存为文件了。
var result = webview.evalJS("output();");
var base64 = Titanium.Utils.base64decode(result);
var file = Titanium.Filesystem.getFile( Titanium.Filesystem.tempDirectory, "_TEMP_.png" );
file.write( base64 );
******
包含有canvas的HTML文件详见附件!
分享到:
相关推荐
7. **编译CHM文件**:最后一步是使用CHM编译工具将所有HTML、图像、索引文件打包成一个CHM文件。编译过程中,工具会处理所有内部链接,确保在CHM环境中可以正常导航。 完成上述步骤后,你将得到一个包含Titanium ...
这篇博客“使用Titanium来开发“Path”的一些创新UI布局 - 左右菜单”可能探讨了如何利用 Titanium 创建类似 Path 应用的界面设计,其中包含了左右滑动切换菜单的实现。Path 是一款知名的社交应用,其用户界面以其...
Titanium中文版开发手册是一份专门为中文用户编译的开发者指南,旨在帮助熟悉中文的开发者充分利用Titanium框架进行移动应用的开发。Titanium是一个开源的JavaScript平台,允许开发者使用JavaScript、HTML和CSS来...
这个文件告诉 Titanium 如何加载和使用你的插件。 **6. 实现 JavaScript 接口** 在 JavaScript 侧,创建一个模块实例,并暴露必要的方法和属性给应用程序。这通常在 `index.js` 文件中完成。 **7. 测试与发布** ...
TitaniumBackup_6.0.5.1,这款专业版应用,以其强大的功能和高效的操作,为用户提供了可靠的数据管理工具。它的静默恢复特性,更是为用户带来了前所未有的便利。 Titanium Backup 是一款备受赞誉的第三方备份工具,...
本文档将指导用户如何安装 Cisco N7K 模拟器 Titanium 6.1.1,包括虚拟机的设置、模拟器的连接、TFTP 服务器的建立、升级安装包的传输、系统文件的更新等步骤。 一、虚拟机设置 在安装 Cisco N7K 模拟器 Titanium ...
该工具允许开发者使用 JavaScript 编写应用程序,并通过一套统一的 API 接口访问原生移动设备功能,如 GPS 定位、摄像头、通讯录等,同时能够编译为 iOS 和 Android 平台的原生应用程序。 #### 二、Titanium Module...
前端开发领域中,`node-titanium-sdk`是一个重要的开源库,它基于Node.js环境,为开发者提供了一种使用JavaScript开发原生移动应用的途径。`node-titanium-sdk`是Appcelerator Titanium SDK的一部分,允许开发者利用...
`TiDrop.js`这个文件可能包含了上述所有步骤的实现,提供了易于使用的API,让开发者可以在Titanium应用中轻松地启用拖放功能。通过导入和使用这个模块,开发者可以快速地在他们的应用中实现拖放功能,无需深入学习...
Titanium 是一个强大的开源JavaScript框架,专为开发原生移动应用而设计。它允许开发者使用JavaScript编写代码,同时能够利用iOS、Android等平台的原生功能。在涉及到“titanium 打开本地网络”的话题时,我们主要...
2. **原生性能**:尽管基于JavaScript,但Titanium通过运行时转换将代码编译为原生应用程序,提供了接近原生应用的性能。 3. **API支持**:Titanium提供了丰富的API,涵盖了设备访问、用户界面构建、网络通信、数据...
将文件存储在设备上作为缓存 根据时间自动过期文件并重新下载 提供一种垃圾收集陈旧缓存文件的方法 如果远程文件未更改,则阻止文件 I/O 自动限制请求以防止过多的 HTTP 连接(适用于带有图像的 TableView) 使用 ...
学习这些资料,你将能够熟练地使用 Titanium Studio 创建跨平台的应用,掌握从基本的 UI 设计到复杂的数据库操作,以及如何利用模块来扩展功能。同时,理解并熟练运用 JSON 文件将帮助你更好地查阅和理解 Titanium ...
[✔] TB Web服务器:将备份作为单个ZIP文件下载/上传到计算机上 [✔]转换用户应用程序系统应用程序 [✔]将系统应用程序更新集成到ROM [✔]加密 [✔] Market Doctor(将应用程序重新链接到Market) [✔]“销毁...
[Packt Publishing] Appcelerator Titanium 移动应用开发教程 (英文版) [Packt Publishing] Creating Mobile Apps with Appcelerator Titanium (E-Book) ☆ 图书概要:☆ Develop fully-featured mobile ...
Titanium Backup_3.7.4捐赠完全版
titanium-d1-kickstart.6.1.1.gbin 强大的思科模拟器
Titanium正是这种混合开发的代表,它将JavaScript代码编译为原生应用,使得开发者能享受到Web开发的便捷性,同时获得接近原生应用的性能和用户体验。 ### Titanium框架 Titanium框架提供了一系列APIs,这些APIs与...