Symbian下用C++实现网页浏览的代码

来源:互联网 发布:外资撤离中国 知乎 编辑:程序博客网 时间:2024/06/05 04:43

先声明一下,下面的这段代码是调用系统的浏览器实现网页浏览的功能,很显然这是一种比较简单的方法,但是它的可控制性就不行了,例如左软键的内容你是肯定该不了的。如何写一个自己的浏览器,而不调用系统的,等以后做出来再说吧。

调用系统的浏览器来实现网页浏览可以根据系统浏览器的状态而决定调用的方法,例如当系统浏览器正在使用所的时候可以用TApaTask::SendMessage ()方法;当系统浏览器没有被使用的时候可以用RapaLsSession::StartDocument() 方法。

下面是实现代码:

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;
}

//其中入口参数addr的格式是“4”+” <Space>“+”<Url>”,例如“4  www.google.com”。

 
原创粉丝点击