vendredi 25 novembre 2011

Ouvrir le client mail natif de Symbian en QML

Plutôt que de redévelopper un écran pour l'envoi d'un email, souhaiteriez-vous utiliser l'application native Symbian de client mail ?

Rien de plus simple ...

Créer un projet Qt Quick de base et modifier le fichier "main.qml" comme suit :

import QtQuick 1.0
Rectangle {
    width: 360
    height: 360
    Text {
        text: "Cliquer pour ouvrir le client mail natif"
        anchors.centerIn: parent
    }
    MouseArea {
        anchors.fill: parent
        onClicked: {
            Qt.openUrlExternally("mailto:alain.dupont@gmail.com?subject=Mes préférences&body=à voir demain.");
        }
    }
}

Et voici le rendu en deux temps :

  • Lorsqu'on clique sur l'écran, la boite de dialogue native suivante s'ouvre afin de demander à l'utilisateur de sélectionner son compte mail à utiliser pour envoyer le message.



  • Une fois le compte séléctionné, l'application mail native s'ouvre :

Comme vous pouvez le constater, les contenus des champs "mailto", "subject" et "body" utilisés via l'appel à Qt.openUrlExternally() sont directement exploités par l'application native.

Remarque : sur les versions Symbian^3 antérieures à la version Anna, les caractères accentués ne sont pas gérés. Un workaround existe en Qt C++ :


void EmailHelper::sendEmail(const QString & rTo, const QString & rSubject, const QString & rBody)
{
    QString urlString = "mailto:";
    urlString += rTo;
    urlString += "?subject=";
    urlString += rSubject;
    urlString += "&body=";
    urlString += rBody;
    QUrl url(urlString);
    QString encodedUrlString = QString::fromAscii(url.toEncoded());
    QDesktopServices::openUrl(QUrl(encodedUrlString));
}

La méthode QString::fromAscii permet de convertir la chaîne de caractère au format Unicode.

Aucun commentaire:

Enregistrer un commentaire