调用symbian 浏览器打开指定网页
来源:互联网 发布:java命令编译java文件 编辑:程序博客网 时间:2024/04/29 22:24
只要将下面这个类添加到功能里,就可以实现调用浏览器并打开指定网页:
头文件 #include <apgcli.h>
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;
}
调用方法: OpenUrlL( _L("www.yuelongr.cn") );
然而在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;
}
调用方法: OpenUrlL( _L("www.yuelongr.cn") );
声明:
本贴内容来自互联网,经整理修改而成,感谢原作者的分享。
本文来源于Yuelongr http://www.yuelongr.cn/ 原文地址:http://www.yuelongr.cn/post/25.html
- 调用symbian 浏览器打开指定网页
- Intent调用手机指定浏览器打开网页
- symbian调用浏览器打开URL
- PB中调用默认浏览器打开指定网页的方法
- Symbian S60第三版上启动浏览器并打开指定网页
- android 指定浏览器打开网页
- Symbian -打开系统浏览器浏览网页
- Symbian -打开系统浏览器浏览网页
- Android获取本机浏览器包名,并调用指定浏览器打开网页
- Android 调用浏览器,打开网页
- java调用浏览器打开网页
- Java调用浏览器打开网页
- java调用指定浏览器打开指定网址
- C#使用默认浏览器打开指定网页
- 启动系统默认浏览器打开指定网页
- ShellExecute指定IE浏览器打开网页
- 如何使用指定浏览器打开网页
- Java 启动IE浏览器打开指定网页
- 在收件箱创建短信
- MS SQL 所有字段
- 拖拽字体
- Linux USB鼠标驱动注解及测试
- 主机托管与虚拟主机等
- 调用symbian 浏览器打开指定网页
- 一个困扰我几天的struts2的问题!
- css学习总结
- 进程与程序的区别
- 网站建设及优化(SEO)
- Linux操作系统下如何编译安装源码包软件
- 第二章(契约 实现一个双向服务契约的server 部分)
- one-to-one
- 在查找预编译头指令时遇到意外的文件结尾