求Symbian简单入门级应用程序!急~~~

zhangyawei352 2010-09-19 02:23:54
Symbian平台应用程序
功能:
能在系统上建立一个菜单,也就是快捷方式。

点击后调用系统默认的浏览器,访问一个固定的wap网站。



哪位有现成的程序,发一个,谢谢了!!!
...全文
83 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
think12 2010-09-24
  • 打赏
  • 举报
回复
下边是启动浏览器,打开一个指定的网页,
至于菜单里的快捷方式,应该很简单了,就不写了。

原帖地址:
http://blog.csdn.net/utopia2006/archive/2008/06/10/2532911.aspx



我们通常使用下面的代码启动浏览器并打开指定网页:

void OpenUrlL(const TDesC& aUrl)
{
if(aUrl.Length() <= 0)
return;

HBufC* param = HBufC::NewLC( aUrl.Length() + 8 );
param->Des().Format( _L( "4 %S" ),&aUrl );

// Wap Browser's constants UId
const TInt KWmlBrowserUid = 0x10008D39;
TUid id( TUid::Uid( KWmlBrowserUid ) );

TApaTaskList taskList( CEikonEnv::Static()->WsSession() );
TApaTask task = taskList.FindApp( id );
if ( task.Exists() )
{
HBufC8* param8 = HBufC8::NewLC( param->Length() * 4 );
param8->Des().Append( *param );
task.SendMessage( TUid::Uid( 0 ), *param8 ); // Uid is not used
CleanupStack::PopAndDestroy(); // param8
}
else
{
RApaLsSession appArcSession;
User::LeaveIfError(appArcSession.Connect()); // connect to AppArc server
TThreadId id;
appArcSession.StartDocument( *param, TUid::Uid( KWmlBrowserUid ), id );
appArcSession.Close();
}
CleanupStack::PopAndDestroy(); // param
return;
} 然而在S60 3rd的设备上存在两个浏览器"网络"和"服务","网络"UID是0x1020724D,"服务"的UID是0x10008D39,上面的代码会启动" 服务",但是确不能打开指定的网页,如果把UID换成"网络"的UID是可以正常打开的,可是在S60 3rd FP1的设备上只剩下一个浏览器,UID为0x10008D39,这就造成了代码通用性的问题,为了避免生成两个版本的程序,我们可以首先查找 0x1020724D这个UID对应的程序是否在系统中存在,如果存在说明手机的基于S60 3rd的,如果不存那么就是基于S60 3rd FP1的,这时我们使用0x10008D39就可以了:

void OpenUrlL(const TDesC& aUrl)
{
if(aUrl.Length() <= 0)
return;

const TInt KBrowserUid1 = 0x1020724D;
const TInt KBrowserUid2 = 0x10008D39;

RApaLsSession appArcSession;
User::LeaveIfError(appArcSession.Connect()); // connect to AppArc server

HBufC* param = HBufC::NewLC( aUrl.Length() + 8 );
param->Des().Format( _L( "4 %S" ),&aUrl );

// Wap Browser's constants UId
TUid browserId( TUid::Uid( KBrowserUid1 ) );

TApaAppInfo appInfo;
if( appArcSession.GetAppInfo( appInfo, browserId ) != KErrNone )
{
browserId = TUid::Uid( KBrowserUid2 );
}

TApaTaskList taskList( CEikonEnv::Static()->WsSession() );
TApaTask task = taskList.FindApp( browserId );
if ( task.Exists() )
{
HBufC8* param8 = HBufC8::NewLC( param->Length() * 4 );
param8->Des().Append( *param );
task.SendMessage( TUid::Uid( 0 ), *param8 ); // Uid is not used
CleanupStack::PopAndDestroy(); // param8
}
else
{
TThreadId id;
appArcSession.StartDocument( *param, browserId, id );
}

appArcSession.Close();
CleanupStack::PopAndDestroy(); // param
return;
}上面的代码在E50和N95上验证通过.

但是我在E61i和第三版的模拟器上实验均不成功,提示:

网络:内容类型不被支持

nettman 2010-09-23
  • 打赏
  • 举报
回复
没有做过,关注下!
左师傅冰红茶 2010-09-23
  • 打赏
  • 举报
回复
新建一个基于UI Designer的GUI工程,然后可以自己拖简单控件,这个最简单了~~~

3,119

社区成员

发帖
与我相关
我的任务
社区描述
塞班系统(Symbian系统)是塞班公司为手机而设计的操作系统,它的前身是英国宝意昂公司的 EP ( Electronic Piece of cheese)操作系统。
社区管理员
  • Symbian社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧