在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
|