Titanium.App.Properties 对象
2024-08-25 06:39:07
Titanium.App.Properties是用来管理键值对数据的一个很方便的对象。在保存数据的时候,在Ti.App.Properties.setString相对应的Key的值中设置你要保存的值即可。相反,取值的时候,通过Ti.App.Properties.getString方法,取得你想取的Key的值。setString和getString是设置字符串的方法,类似的还有其他数据类型的方法。特别要说的是,要想原封不动的保存JavaScript对象是不可以的,你需要先通过JSON等处理,将对象序列化后再保存。
例如1-----------字符串键值对
win.addEventListener(
'close',
function(){
var text = textArea.value;
Ti.App.Properties.setString('previousText', text);
}
);
win.addEventListener(
'open',
function(){
var text = Ti.App.Properties.getString('previousText');
if ( text ) {
textArea.value = text;
}
}
);
在window关闭的时候,window中的textarea等UI控件输入的内容将会消失,所以我们在window的close事件中追加监听事件,将输入的数据进行保存。这样,即使应用终了后,编辑中的内容还能够在下次再编辑。
例如2-----------列表键值对
win.addEventListener(
'close',
function(){
var text = textArea.value;
Ti.App.Properties.setString('previousText', text);
if (mapview.visible) {
var loc = mapview.location;
var locationList =
[loc.latitude,loc.longitude,loc.latitudeDelta,loc.longitudeDelta];
Ti.App.Properties.setList('locationList', locationList);
}
}
);
win.addEventListener(
'open',
function(){
var text = Ti.App.Properties.getString('previousText');
if ( text ) {
textArea.value = text;
}
if ( Ti.App.Properties.hasProperty('locationList') ) {
var locationList = Ti.App.Properties.getList('locationList');
mapview.show();
mapview.setLocation(
{
latitude : locationList[0],
longitude : locationList[1],
latitudeDelta : locationList[2],
longitudeDelta : locationList[3]
}
);
}
}
);
在这个例子中,mapview中要设置的4个关于位置的信息值,能够将其变化成数据后保存起来。原封不动保存对象是不可以的,但是如果有很多值的话,你可以其以数组的形式保存。
当我们要判断某个Key中是否有值的时候,可以使用Ti.App.Properties.hasProperty。
3----文件操作
在上边的例子中,我们通过使用Ti.App.Properties来保存了数据。在Titanium中也能够很方便的读写文件。以下通过例子来说明如何将数据保存到文件中:
Js代码
var fileName = 'tweet.txt';
win.addEventListener(
'close',
function(){
var text = textArea.value;
var loc;
if (mapview.visible) {
loc = mapview.location;
}
var json = JSON.stringify({previousText:text,location:loc});
var file = Ti.Filesystem.getFile(
Titanium.Filesystem.resourcesDirectory + '/' + fileName
);
file.write(json);
}
);
win.addEventListener(
'open',
function(){
var file = Ti.Filesystem.getFile(
Titanium.Filesystem.resourcesDirectory + '/' + fileName
);
var json = file.read();
if ( !json || json.length <= 0) {
return;
}
var data = JSON.parse(json);
var text = data.previousText;
var location = data.location;
if ( text ) {
textArea.value = text;
}
if ( location ) {
var locationList = Ti.App.Properties.getList('locationList');
mapview.show();
mapview.setLocation(location);
}
}
);
在写文件的时候需要注意的一点是:获取文件句柄的方法是Titanium.Filesystem.getFile。
其中的参数就是文件的路径。
Js代码
1. Titanium.Filesystem.resourcesDirectory + '/' + fileName
这里我们通过resourcesDirectory来指定文件路径,相应的其他的可读写路径,Titanium也提供了很多种,大家可以查查API。
在往文件中写入对象的数据的话也一样要通过JSON来序列化。
Titanium中已经为我们提供了JSON的序列化(stringify)和反序列化(parse)方法。上边的例子中大家可以看到具体的用法。
图像的保存
在Tweet的编辑页面中,我们还表示了一个图像,到现在为止,我们都是通过从相册中选择出来的图片,所以图片本身就保存在相册中,但是当我们通过相机拍照的话,就需要将图片保存在相册中。
Js代码
1. Titanium.Media.saveToPhotoGallery(image)
通过以上代码就能将image图片保存到相册中。
Js代码
1. var file = Ti.Filesystem.getFile(
2. Titanium.Filesystem.resourcesDirectory + '/' + fileName
3. );
4. file.write(image)
当然也可以通过这样的方法,将图像以文件的形式保存。
最新文章
- knockout学习笔记目录
- iOS-屏幕适配-UI布局
- JavaScript获取客户端计算机硬件及系统等信息的方法
- 让.NET xml序列化支持Nullable
- APP 游戏审核改动
- groovy
- JQ封装切换滚动功能
- TCP服务器:多进程
- centos下安装dubbo-admin步骤
- css3 如何实现圆边框的渐变
- 使用Git简单笔记
- 用python实现的一个自动聊天的机器人
- [C++]Linux之多进程运行代码框架
- Python学习笔记(二)
- 『流畅的Python』第14章:可迭代的对象、迭代器和生成器
- jmeter函数
- SharePoint Managed Metadata 使用总结
- webmagic使用
- 【python3.X】python练习笔记[1]
- TCP的可靠性
热门文章
- 一步步学习javascript基础篇(8):细说事件
- 【腾讯Bugly干货分享】微信终端跨平台组件 Mars 系列 - 我们如约而至
- Nodejs之MEAN栈开发(七)---- 用Angular创建单页应用(下)
- [Java 缓存] Java Cache之 Guava Cache的简单应用.
- Android笔记——Handler Runnable与Thread的区别
- 【Win10 应用开发】集成文件打开选择器
- Hawk 4.3 转换器
- C# XML转JSON,不引用第三方JSON.NET类库
- 《HelloGitHub月刊》第09期
- JavaScript移除绑定在元素上的匿名事件处理函数