We want to get our application to have a working solution for starting the browser that works on both S60 3rd Edition and S60 3rd Edition, FP1. The solution that we have now only works on S60 3rd Edition, FP1. The reason for this is that we use the browser UID for S60 3rd Edition, FP1 and S60 3rd Edition without FP1 has another UID. This is explained in this article:
http://wiki.forum.nokia.com/index.ph..._specified_URL
How can I implement a solution that starts the browser on both S60 3rd Edition with FP1 and without FP1? Or do I have to make different versions of the application, one for S60 3rd Edition with FP1 and one for without S60 3rd Edition FP1?
This is my code:
void CAnimationContainer:penURL()
{
RApaLsSession apaLsSession;
const TUid KOSSBrowserUidValue = {0x10008D39}; // 0x1020724D for S60 3rd Ed ???
HBufC* param = HBufC::NewLC(64);
//parameters that are passed as command line arguments when launching the OSS Browser:
/*
* 4. Start/Continue the browser specifying a URL
=> Parameter = “4”+” <Space>“+”<Url>”*/
param->Des().Copy(_L("4 http://wap.sharewire.net/buy/?product=416855/"));
TUid id(KOSSBrowserUidValue);
TApaTaskList taskList(CEikonEnv::Static()->WsSession());
TApaTask task = taskList.FindApp(id);
if(task.Exists())
{
task.BringToForeground();
HBufC8* param8 = HBufC8::NewLC(param->Length());
param8->Des().Append(*param);
task.SendMessage(TUid::Uid(0), *param8); // UID not used
CleanupStack::PopAndDestroy(param8);
}
else
{
if(!apaLsSession.Handle())
{
User::LeaveIfError(apaLsSession.Connect());
}
TThreadId thread;
User::LeaveIfError(apaLsSession.StartDocument(*param, KOSSBrowserUidValue, thread));
apaLsSession.Close();
}
CleanupStack::PopAndDestroy(param);
}

penURL()



