先聲明一下,下面的這段代碼是調(diào)用系統(tǒng)的瀏覽器實現(xiàn)網(wǎng)頁瀏覽的功能,很顯然這是一種比較簡單的方法,但是它的可控制性就不行了,例如左軟鍵的內(nèi)容你是肯定該不了的。如何寫一個自己的瀏覽器,而不調(diào)用系統(tǒng)的,等以后做出來再說吧。
調(diào)用系統(tǒng)的瀏覽器來實現(xiàn)網(wǎng)頁瀏覽可以根據(jù)系統(tǒng)瀏覽器的狀態(tài)而決定調(diào)用的方法,例如當系統(tǒng)瀏覽器正在使用的時候可以用TApaTask::SendMessage ()方法;當系統(tǒng)瀏覽器沒有被使用的時候可以用RapaLsSession::StartDocument() 方法。
下面是實現(xiàn)代碼:
TBool CinternetAppUi::ConnectL(const TDesC& addr)
{
const TInt KBrowserUid = 0x10008D39;
TUid id( TUid::Uid( KBrowserUid ) );
TApaTaskList taskList( CEikonEnv::Static()->WsSession() );
TApaTask task = taskList.FindApp( id );
// the system browser is in use
if ( task.Exists() )
{
HBufC8* param8 = HBufC8::NewLC( addr.Length() );
param8->Des().Append( addr );
task.SendMessage( TUid::Uid( 0 ), *param8 ); // Uid is not used
CleanupStack::PopAndDestroy();
}
// the system browser is not in use
else
{
RApaLsSession appArcSession;
User::LeaveIfError(appArcSession.Connect()); // connect to AppArc server
TThreadId id;
appArcSession.StartDocument( addr, TUid::Uid( KBrowserUid ), id );
appArcSession.Close();
}
return ETrue;
}
//其中入口參數(shù)addr的格式是“4”+” <Space>“+”<Url>”,例如“4 www.google.com”。
其中采用以上方法不僅僅可以用于開啟網(wǎng)頁,還可以用于啟動安裝sis/sisx,具體示例代碼如下:
RApaLsSession installSession;
TThreadId threadId;
TUid uid;
uid.iUid = 0x101F875A;
installSession.Connect();
installSession.StartDocument(aFileName, uid, threadId);
installSession.Close();
該代碼自己沒有親測過,但是從理論上說應該可行,而且有大牛說uid都不用傳進去。
另外播放音樂文件,網(wǎng)上也說可以通過該方法來實現(xiàn),Uid分別如下:
0x102072c3 (from S60 3rd Edition onwards)
0x6c5b9d2 (S60 2nd Edition)
RapaLsSession::StartDocument()功能還是很強大的,在這里只做摘錄,以后有機會再親測,不過用其打開網(wǎng)頁的確可行。
posted on 2009-08-12 17:36
frank.sunny 閱讀(1067)
評論(0) 編輯 收藏 引用 所屬分類:
C/C++學習和實踐 、
symbian 開發(fā)