En cliquant sur une URL affichée dans mon application exécutée sur un appareil Symbian S60 3rd Edition, le navigateur du téléphone (qui est déjà ouvert) doit ouvrir l'URL spécifiée.Faire un navigateur de téléphone ouvrir une URL sur Symbian S60 3rd Ed par programmation
Voici le code:
_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;
}
}
Lorsque j'utilise ce code pour ouvrir une URL du navigateur vient au premier plan, mais ne soit pas dirigé vers l'URL.
Je soupçonne que quelque chose est faux dans l'appel SendMessage qui est appelé après que le navigateur est amené à l'avant-plan:
task.SendMessage(TUid::Uid(0), *parameter); // UID not used
cela a fonctionné. Mais je suis inquiet si le code pourrait causer des problèmes si je reçois mon application Symbian Signed. Voir la fonction OpenWebBrowserL ici [http://code.google.com/p/mobbler/source/browse/src/mobblerappui.cpp?spec=svn47607874e896e0ab6ca07d5207a4453c1c8e973b&r=77a6566e9ea3dc192c97a0e8c23edd613a50dce8] numéro de ligne 2251 – ardsrk
Je ne vois pas pourquoi il ne devrait pas t être signé par Symbian. Qui sait pourquoi cela a été commenté dans votre échantillon. – Riho