在Symbian S60中,书签是被保存在一个数据库文件中的,使用CFavouritesDb可以操纵它,例如删除,添加;但是在UIQ 2.x上,每一个书签都是作为一个单独的文件存在的(其扩展名为.url,这是我在困惑了几天之后用QFileMan无意中发现的,^_^);因此在UIQ上添加书签就只需新建一个.url文件,然后按照一定的格式写入你的网址就可以了.
下面给出了一份代码,以供参考:
TBool CExampleAppUi::SavetoBookMarkL(const TDesC& aBookmarkTitle, const TDesC8& aBookmarkUrl)
{
//常量定义
_LIT8(KRootForlder,"//system//apps//browser//folders//书签//");
_LIT8(KBookmarkHeader,"[InternetShortcut]/r/nURL=");
_LIT8(KBookmarkEnd,"/r/nWA=0");
_LIT(KExt,".url");
//获取要创建的书签的文件名
TFileName fielName;
GbkToUtf8L(fielName,KRootForlder());
fielName.Append(aBookmarkTitle);
fielName.Append(KExt);
RFile fileWrite;
CleanupClosePushL(fileWrite);
TInt err=fileWrite.Replace(CEikonEnv::Static()->FsSession(),fielName,EFileWrite);
if(err!=KErrNone)
{
//创建书签文件失败,无法保存此书签
HBufC *errText=CEikonEnv::Static()->AllocReadResourceLC(R_ERROR_TEXT);
CEikonEnv::Static()->InfoMsg(*errText);
CleanupStack::PopAndDestroy(errText);
return EFalse;
}
//写书签的头部
TBuf8<256> tempBuf;
tempBuf.Copy(KBookmarkHeader);
fileWrite.Write(0,tempBuf);
//写书签对应的URL
fileWrite.Write(aBookmarkUrl);
//写书签的结尾
tempBuf.Zero();
tempBuf.Copy(KBookmarkEnd);
fileWrite.Write(tempBuf);
//关闭RFile资源
CleanupStack::PopAndDestroy(&fileWrite);
//给用户一个提示
HBufC *okText=CEikonEnv::Static()->AllocReadResourceLC(R_SUCCESS_TEXT);
CEikonEnv::Static()->InfoMsg(*okText);
CleanupStack::PopAndDestroy(okText);
return ETrue;
}
PS: 突然发现QFileMan和FExplorer是两个很有用的工具的,有时候它们会帮你大忙的.
声明: 转贴或引用请注明出处!
BR/赵江伟
2006-09-04