单击在 Symbian S60 3rd Edition 设备上运行的应用程序中显示的 URL 时,手机浏览器(已打开)应打开指定的 URL。
这是代码:
_LIT( KUrlPrefix,"4 " )
void CMunduIMAppUi::OpenInBrowser(const TDesC& aUrl)
{
HBufC *url = NULL;
const TInt KWmlBrowserUid =0x10008D39;
TUid id( TUid::Uid( KWmlBrowserUid ) );
TApaTaskList taskList( CEikonEnv::Static()->WsSession() );
TApaTask task = taskList.FindApp( id );
// Checks if the browser is already open
if ( task.Exists() )
{
HBufC8* parameter = HBufC8::NewL( aUrl.Length()+ KUrlPrefix().Length());
parameter->Des().Copy(KUrlPrefix);
parameter->Des().Append(aUrl);
task.BringToForeground();
task.SendMessage(TUid::Uid(0), *parameter); // UID not used
delete parameter;
parameter = NULL;
}
}
当我使用此代码打开 URL 时,浏览器会进入前台,但不会定向到 URL。
我怀疑浏览器进入前台后调用的 SendMessage 调用有问题:
task.SendMessage(TUid::Uid(0), *parameter); // UID not used