При нажатии на URL-адрес, отображаемый в моем приложении, работающем на устройстве Symbian S60 3rd Edition, браузер телефона (который уже открыт) должен открыть указанный 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