« 【Tizen】aタグで色々なスキームを使ったときの動きを確かめてみた | トップページ | Tizen端末と出会えるのはいつの日か »

2013年7月 1日 (月)

【Tizen】メールアプリの新規作成画面を起動する

http://sora-mameo.cocolog-nifty.com/blog/2013/07/tizen-b70c.htmlに書いたように、

mailtoでメールアプリは起動しませんでした。

「じゃあどうすればメールアプリの新規作成画面は起動するんだ!?」

ということで、起動方法を調べてみました。

メールアプリ起動に使用するAPIは、以下のものになります。


●tizen.application.launchAppControl メソッド
void launchAppControl(
        ApplicationControl appControl, // 起動先アプリを指定する
        optional ApplicationId? id, // 起動先アプリID。アプリを明示的に指定する際に使用。
        optional SuccessCallback? successCallback, // 起動成功時のコールバックメソッド
        optional ErrorCallback? errorCallback, // 起動失敗時のコールバックメソッド
        optional ApplicationControlDataArrayReplyCallback? replyCallback // 起動先アプリからデータを受け取る際に呼ばれるコールバック
)

このlaunchAppControl()が、アプリを起動するAPIです。

メールアプリ起動時に必要なのは、第一引数のappControlのみです。

他は使用しないので、null渡しで大丈夫です。

第一引数のappControlは、非常に重要です。

Androidアプリ開発の経験がある方は、Androidで言うところのインテントに

当たるものと言うと解りやすいかと思います。

なお、launchAppContol()使用時は、config.xmlに

"http://tizen.org/privilege/application.launch"のprivilegeを追加する必要があります。


●tizen.ApplicationControl クラス
[コンストラクタ]
tizen.AppControl(
        DOMString operation, // 起動先アプリのふるまいを指定する
        optional DOMString? uri, // 起動先アプリへ渡すURI
        optional DOMString? mime, // 起動先アプリに渡すデータのmimeタイプ
        optional DOMString? category, // 起動先アプリのカテゴリ
        optional ApplicationControlData[]? data // 起動先アプリに渡すデータ
)

メールアプリを起動する際は、第一引数operationに、

"http://tizen.org/appcontrol/operation/compose"を指定します。

そのほかの引数は、指定する必要はないので、null渡しとなります。

ただし、メールアプリに宛先や添付ファイル等のデータを渡したい場合は、

第五引数のdataを使用します。

tizen.ApplicationControlDataクラスの定義は、以下のようになっています。

●tizen.ApplicatonControlDataクラス
[コンストラクタ]
tizen.ApplicatonControlData(
        DOMString key,
        DOMString[] value
)

所定のキーと、それに対するデータを与えれば、メールアプリにデータを渡せるというしくみになっています。

以下が、メールアプリに渡せるデータのキー一覧です。

 表. tizen.ApplicatonControlDataで渡せるデータの一覧
データキー
宛先(To) http://tizen.org/appcontrol/data/to
宛先(cc) http://tizen.org/appcontrol/data/cc
宛先(bcc) http://tizen.org/appcontrol/data/bcc
メールタイトル http://tizen.org/appcontrol/data/subject
メール本文 http://tizen.org/appcontrol/data/text
添付ファイルのパス http://tizen.org/appcontrol/data/path


これらを使用した、サンプルソースは以下のとおりです。

●config.xml

<?xml version="1.0" encoding="UTF-8"?>

<widget xmlns:tizen="http://tizen.org/ns/widgets" xmlns="http://www.w3.org/ns/widgets" id="http://yourdomain/startBrowzerApp" version="1.0.0" viewmodes="maximized">

    <tizen:application id="IhPtZHIZOO" required_version="1.0"/>

    <content src="index.html"/>

    <icon src="icon.png"/>

    <name>メールアプリ起動元アプリ</name>

    <tizen:privilege name="http://tizen.org/privilege/tizen"/>

    <tizen:privilege name="http://tizen.org/privilege/application.kill"/>

    <tizen:privilege name="http://tizen.org/privilege/application.launch"/>

</widget>


●index.xml

<!DOCTYPE html>

<html>

<head>

    <meta charset="utf-8"/>

    <meta name="description" content="A Tizen Web UI FW single-page template generated by Tizen Web IDE"/>

    <title>メールアプリ起動元アプリ</title>

    <script src="tizen-web-ui-fw/latest/js/jquery.js"></script>

    <script src="tizen-web-ui-fw/latest/js/tizen-web-ui-fw-libs.js"></script>

    <script src="tizen-web-ui-fw/latest/js/tizen-web-ui-fw.js"

        data-framework-theme="tizen-white"></script>

    <script type="text/javascript" src="./js/main.js"></script>

    <script type="text/javascript" src="./js/startMailApp.js"></script>

    <link rel="stylesheet" type="text/css" href="./css/style.css"/>

</head>

<body>

    <div data-role="page">

        <div data-role="header" data-position="fixed">

            <h1>メールアプリ起動元サンプルアプリ </h1>

        </div><!-- /header -->

        <div data-role="content">

            <div data-role="button" onclick="javascript:startMailApp()">メールアプリ起動</div>

        </div><!-- /content -->

        <div data-role="footer" data-position="fixed">

            <h4>Footer content</h4>

        </div><!-- /footer -->

    </div><!-- /page -->

</body>

</html>


●startMailApp.js (※jsフォルダ内に追加)

// メールアプリを起動する

function startMailApp() {

    // メールアプリに渡す宛先(To)

    var sendToData = new tizen.ApplicationControlData(

    "http://tizen.org/appcontrol/data/to",

    ["name@dummyto.com"]);

 

    // メールアプリに渡す宛先(cc)

    var sendCcData = new tizen.ApplicationControlData(

    "http://tizen.org/appcontrol/data/cc",

    ["name@dummycc.com"]);

 

    // メールアプリに渡す宛先(bcc)

    var sendBccData = new tizen.ApplicationControlData(

    "http://tizen.org/appcontrol/data/bcc",

    ["name@dummybcc.com"]);

 

    // メールアプリに渡すタイトル

    var sendTitleData = new tizen.ApplicationControlData(

    "http://tizen.org/appcontrol/data/subject",

    ["sample-title"]);

 

    // メールアプリに渡す本文

    var sendTitleData = new tizen.ApplicationControlData(

    "http://tizen.org/appcontrol/data/text",

    ["sample-text"]);

 

    // メールアプリに渡すパス

    var sendTitleData = new tizen.ApplicationControlData(

    "http://tizen.org/appcontrol/data/path",

    ["file:///dummy.png"]);

 

    var sendData = [sendToData, sendCcData, sendBccData, sendTitleData, sendTitleData, sendTitleData];

 

    var appControl = new tizen.ApplicationControl(

    "http://tizen.org/appcontrol/operation/compose",

    null,

    null,

    null,

    sendData

    );

 

    // メールアプリを起動

    tizen.application.launchAppControl(

    appControl,

    null,

    onSuccess,

    onError,

    null);

}

// メールアプリ起動成功時に呼ばれるコールバック

function onSuccess() {

    console.log("start mail app succeed");

}

// メールアプリ起動失敗時に呼ばれるコールバック

function onError(e) {

    console.log("start mail app failed. message: " + e + " : " + e.message);

}

« 【Tizen】aタグで色々なスキームを使ったときの動きを確かめてみた | トップページ | Tizen端末と出会えるのはいつの日か »

Tizen」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1882306/52253510

この記事へのトラックバック一覧です: 【Tizen】メールアプリの新規作成画面を起動する:

« 【Tizen】aタグで色々なスキームを使ったときの動きを確かめてみた | トップページ | Tizen端末と出会えるのはいつの日か »

購入


無料ブログはココログ