Tizen

2014年1月19日 (日)

【Tizen】ドコモからの販売が当面見送り

2、3日前のニュースなので今更ですが、

こんなの出てますね。
うちのブログのtizen関連の記事のアクセス数も、
一時伸びていたのですが、最近下がりっぱなしでしたし、
裏でこういう動きがあったのが原因だったのかなーと考えています。
結局、tizenの端末が世に出回る時が来るのかどうなのか・・・。

2013年10月26日 (土)

【Tizen】ウェブサイトのリンクから、Nativeアプリを起動する

以前、ウェブサイトのリンクからウェブアプリを起動する方法は書きましたが、

今回はネイティブアプリを起動する方法について記載します。


●ウェブサイト側の実装

ウェブサイト側は、以下のリンクを用意するとします。

<a>タグのhref属性に、"test"というスキームを指定しました。

<a href="test://" />


●アプリ側の実装

上記のウェブサイトのリンクから、ネイティブアプリを起動するには、

manifest.xmlに、次のように記載します。

追記するのは、赤字の部分です。

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Manifest xmlns="http://schemas.tizen.org/2012/12/manifest">
    <Id>nwpCg1lLaR</Id>
    <Version>2.0.0</Version>
    <InstallLocation>Internal</InstallLocation>
    <Type>C++App</Type>
    <Requirements>
        <Feature Name="http://tizen.org/feature/screen.size.normal">true</Feature>
    </Requirements>
    <Apps>
        <ApiVersion>2.2</ApiVersion>
        <Privileges>
            <Privilege>http://tizen.org/privilege/application.launch</Privilege>
        </Privileges>
        <UiApp HwAcceleration="On" LaunchingHistoryVisible="False" Main="True" MenuIconVisible="True" Name="NativeSample">
            <UiScalability BaseScreenSize="Normal" CoordinateSystem="Logical" LogicalCoordinate="720"/>
            <UiTheme SystemTheme="White"/>
            <DisplayNames>
                <DisplayName Locale="eng-GB">NativeSample</DisplayName>
            </DisplayNames>
            <Icons>
                <Icon Section="MainMenu" Type="Xhigh">mainmenu.png</Icon>
            </Icons>
            <AppControls>
                <AppControl>
                    <Operation>http://tizen.org/appcontrol/operation/view</Operation>
                    <Uri>test</Uri>
                </AppControl>
            </AppControls>

            <Permissions>
                <Permission Type="Signature"/>
            </Permissions>
        </UiApp>
    </Apps>
</Manifest>


<Uri>タグには、ウェブサイト側でリンク先に指定しているものと、

同じスキームを指定します。

これで、ウェブサイトのリンクからネイティブアプリが起動します。


なお、確認環境は、Tizen SDK2.2 エミュレータです。

2013年9月12日 (木)

【Tizen】 FileSystemAPIに用意された仮想パスと、それぞれの物理パス一覧

Tizenは、ファイルアクセスを行う際、FileSystemAPIを使用します。

FileSystemAPIでファイルのパスを指定する際、仮想パスを使用することになります。

今回は、どのような仮想パスが用意されているか、

そして、各仮想パスの物理パスはどのようになっているかを一覧に纏めました。

仮想パス物理パス 概要
images /opt/usr/media/Images 画像ファイルを保存する共有フォルダ。
各アプリからアクセス可能。
ここに保存すると、ギャラリーアプリにも表示されるようになる。
videos /opt/usr/media/Videos 動画ファイルを保存する共有フォルダ。各アプリからアクセス可能。
music /opt/usr/media/Sounds 音楽ファイルを保存する共有フォルダ。各アプリからアクセス可能。
documents /opt/usr/media/Documents ドキュメントファイルを保存する共有フォルダ。各アプリからアクセス可能。
downloads /opt/usr/media/Downloads ダウンロードしたファイルを保存する共有フォルダ。各アプリからアクセス可能。
ringtones /opt/usr/share/settings/Ringtones よくわからないけど、名前的に着メロか何か・・・?readのみ可。
wgt-package /opt/usr/apps/Pj2FtK9ZdE/res/wgt アプリ自身の、パッケージファイルが入っている場所。アプリプロジェクトのルート以下が丸ごと入っている。
別のアプリからアクセスできないとはいえ、Config.xmlやjsソースファイルも覗けるけど、いいのか・・・?
readのみ可。
wgt-private /opt/usr/apps/Pj2FtK9ZdE/data アプリ自身の、ローカルな保存領域。別のアプリからはアクセスできない。
wgt-private-tmp /opt/usr/apps/Pj2FtK9ZdE/tmp アプリ自身の、ローカルな保存領域。一時的に使用するファイルを保存する。別のアプリからはアクセスできない。

これで心おきなくファイル読み書きの動作確認ができる!

2013年9月 4日 (水)

【Tizen】 Google MapのAPIを使用して地図を表示する

Tizenで、google mapを表示する方法についてです。

Tizenの場合、Google Maps Javascript APIがそのまま使用できます。

※ Google MapのAPIを使用するには、アプリキーを取得する必要があります。

    アプリキーを取得してない方は、こちらを参考に取得してみてください。


ただし、1つだけポイントがあります。

Tizenのアプリは、外部サイトに接続する際、

接続を許可するサイトをconfig.xmlに記載しておく必要があります。

それ以外は、普通にGoogleMapのAPIを使用すればOKです。

では、Tizenアプリ上でGoogle Mapを表示するサンプルを用いて

実装方法に触れたいと思います。


●config.xmlにアクセスを許可するURLを記載

google map javascript APIを使用する際、以下2つのURLの

アクセス許可を与える必要があります。

  • http://googleapis.com
  • http://gstatic.com
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/GoogleMap" version="1.0.0" viewmodes="maximized">
 <access origin="http://googleapis.com" subdomains="true"/>
 <access origin="http://gstatic.com" subdomains="true"/>
    <tizen:application id="jMbB8S3PqK.GoogleMap" package="jMbB8S3PqK" required_version="2.2"/>
    <content src="index.html"/>
    <icon src="icon.png"/>
    <name>GoogleMap</name>
</widget>


●index.html

index.htmlに、google mapのAPIで地図を表示させる処理を記述しました。

"{アプリキー}"と記載している箇所は、お手持ちのアプリキーに書き換えてください。

このソースは、ほとんど公式にあったサンプルソースのままですが、

Tizenさんはしっかり動いてくれます。

<!DOCTYPE html>
<html>
  <head>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
    <style type="text/css">
      html { height: 100% }
      body { height: 100%; margin: 0; padding: 0 }
      #map_canvas { height: 100% }
    </style>
    <script type="text/javascript"
      src="http://maps.googleapis.com/maps/api/js?key={アプリキー}&sensor=true">
    </script>
    <script type="text/javascript">
      function loadMap() {
        var mapOptions = {
          center: new google.maps.LatLng(34.397, 135.644),
          zoom: 10,
          mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        var map = new google.maps.Map(document.getElementById("map_canvas"),
            mapOptions);
      }
    </script>
    <script type="text/javascript" src="./js/main.js"></script>
 
  </head>
  <body onload="loadMap()">
    <div>Google Map</div>
    <div id="map_canvas" style="width:100%; height:100%"></div>
  </body>
</html>


上記のソースに書き換えて、アプリを実行すると・・・、

Googlemap

このとおり、見事マップが表示されました!

2013年8月26日 (月)

【Tizen】インストールしたアプリのデータはどこに設置される?

すっかり夏休みモードでした。

まだまだ夏休みモードが抜けきらず、今回はちょっとしたメモ書き。

インストールしたアプリのデータって、一体端末のどのパスに置かれるんだろうと

思い調べてみたら、以下のパスのようです。


パス: /opt/usr/apps/(packageID)


packageIDは、config.xmlに自動生成されるやつです。

詳しくはこちらに載ってました。

https://developer.tizen.org/help/index.jsp?topic=%2Forg.tizen.web.device.apireference%2Ftizen%2Ffilesystem.html

2013年7月30日 (火)

【Tizen】sdbで配布されたアプリのパッケージファイル(.wgt)をインストールする

アプリの開発を進めていくと、アプリのパッケージファイルを配布し、

テストを行うかと思います。

そんなときに、配布したアプリのパッケージファイルをインストールする方法についてです。


【sdbを使う!】

tizenには、Smart Development Bridge、略してsdbと呼ばれるツールが用意されています。

これを使用することで、配布されたwgtファイルを端末やエミュレータに

インストールすることが出来ます。


ちなみにこのsdbですが、明らかにパクってるだろうってぐらいAndroidのadbにそっくりです。

では、順を追ってインストールするまでの方法を記載します。


●sdbによるwgtファイルのインストール手順

(1) コマンドプロンプトを起動する

sdbは、コマンドプロンプトにて使用します。まず起動しましょう。


(2) " (tizenSDKインストール先)/tizen-sdk/tools/"へ移動

sdbコマンドは、" (tizenSDKインストール先)/tizen-sdk/tools/"に格納されています。

コマンドプロンプトでここまで移動しましょう。

面倒なら、環境変数にパスを追加しておくと◎。

> cd  (tizenSDKインストール先)/tizen-sdk/tools/


(3) sdbのインストールコマンドを打つ

手順(2)まで終われば、いよいよsdbを使用します。

インストールコマンドは以下のとおり。

> sdb install (パッケージファイル名)

パッケージ名には、インストールするパッケージファイルの名前をパスも含めていれてください。

これでパッケージファイルのインストールは完了です。

心置きなくテストをしましょう!


--------------------------------------------------

自作アプリ、

いつでもクイックランチャー ver3.0アップデートを

公開しました!

Slidetask

Google playよりダウンロード可能ですので、是非お使いください!

https://play.google.com/store/apps/details?id=com.yso.slidetask


感想や改善点等、聞かせていただけるとうれしいです。

アプリの中の実装方法で気になる点のご質問も大歓迎です!

2013年7月23日 (火)

【Tizen】Preferencesを使用して、データの保存と書き込みを行う

アプリを作っていると、データを永続的に保存したい場合があるかと思います。

そんな場合、Androidなら主にSharedPreferences、

iOSならUserDefaultを使用するかと思います。


Tizenで同様のことを行いたい場合は、widget.preferencesを使用します。

使用方法は、以下のとおりです。

    // キー"test"の値を取得
    console.log("key = test : val = " + widget.preferences.getItem("test"));
    // キー"test"の値を更新
    widget.preferences.setItem("test", "testVal");

上記のプログラムを実行した際の1回目と2回目のコンソール出力結果は、

以下のようになります。

1回目:"key = test : val = null"

2回目:"key = test : val = testVal"


なお、config.xmlに、あらかじめキーと値を設定しておくことも可能です。

config.xmlに記載する場合は、次のようになります。

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

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

    <tizen:application id="lw9vnoueZ4.preferencesample" package="lw9vnoueZ4" required_version="2.2"/>

    <content src="index.html"/>

    <icon src="icon.png"/>

    <name>preference-sample</name>

    <preference name="test" value="testVal" readonly="false"/>

</widget>

使用するのは、赤字で表記した部分です。

Preferenceタグを使用します。

各パラメータについては、以下のとおりです。

"name" ・・・ キーの名前。

"value" ・・・ 保存する値。

"readOnly" ・・・ 保存したvalueの値の変更を許可するか否か。

2013年7月21日 (日)

【Tizen】 インストール済みアプリケーションの一覧を取得する

インストール済みアプリの一覧を取得してみました。

全アプリケーションの情報は、

tizen.package.PackageInformaiton型の配列で渡されます。

PackageInformationクラスからは、以下の情報が取得できます。

・PackageInformationクラスのプロパティ
プロパティ 概要
PackageId id アプリごとに付与されたパッケージID。
config.xmlの<tizen:application>タグpackage属性に
設定された値。
DOMString name アプリケーションの名前。
DOMString iconPath アプリのアイコンが保存されている場所を示すパス。
DOMString version アプリのバージョン。
long totalSize アプリのデータサイズ。アプリ本体のデータサイズと、
アプリが別途保存しているデータサイズの合計値。
long dataSize アプリが保存しているデータのサイズ。
アプリ本体のデータサイズは除く。
Date lastModified アプリの最終更新日時。
DOMString author アプリの製作者名。
DOMString description アプリの説明文。
ApplicationId[]  appIds パッケージに設定されたID一覧。


では、さっそ実装方法についてです。


●config.xmlに、privilageを追加

tizen.packageAPIは、Tizen Web APIに含まれます。

この中のAPIを使うには、config.xmlにprivilageを追加する必要があります。

追加するprivilageは、"http://tizen.org/privilege/package.info"です。

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

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

    <tizen:application id="Vpcr6FlQ6Q.sample" package="Vpcr6FlQ6Q" required_version="2.2"/>

    <content src="index.html"/>

    <icon src="icon.png"/>

    <name>sample</name>

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

    <tizen:setting screen-orientation="portrait" context-menu="enable" background-support="disable" encryption="disable" install-location="auto" hwkey-event="enable"/>

</widget>


●javascript

javascriptのソースは、下記のようになります。

// アプリケーション一覧情報取得成功時に呼ばれる
// 引数には、PackageInformationクラスの配列が渡される。
function onSuccess(packages) {
    for (var i = 0; i < packages.length; i++) {
        var item = packages[i];
        // 全アプリの、バージョン番号、名前、IDをコンソールに表示
        console.log("[" + item.version + "/" + item.name + "/" + item.id + "]"); 
    }
}
function onError(err) {
    console.log("Can't obtain packages list" + err.name);
}
function checkAppInstalled() {
    // インストールアプリ一覧取得APIをコール
    tizen.package.getPackagesInfo(
        onSuccess, // 取得成功時に呼ばれるコールバック
        onError); // 取得失敗時に呼ばれるコールバック
}

2013年7月15日 (月)

【Tizen】htmlのタグを使って、別のアプリケーションを起動する

以前、Tizen Web APIのlaunchAppメソッドを使って、

別のアプリを起動する方法について記載しました。

今回は、htmlの<a>タグを使って別のアプリケーションを起動する方法について

記載します。


ちなみに<a>タグを用いた他のアプリの起動は、

Tizen SDK2.0の頃にエミュレータで試したのですが、うまく起動しませんでした。

これについて調査したところ、エミュレータのみに存在していたバグだったそうです。

TizenSDK2.0当時のエミュレータはアプリ起動機能周辺にいくつかバグがあったようで、

これらは最新のTizenSDK2.2では修正されています。

僕もバグの情報をキャッチし、改めてTizenSDK2.2で今回の<a>タグによる起動を

試したところ、正しく動作することが確認できました!


さて、本題です。

実装方法なのですが、

【Tizen】ウェブサイトのリンクから、アプリケーションを起動する で記載した内容と、

全く同じです。なので、こちらの記事を見ていただければ。

(手抜きですみません・・・。)


サクっと説明しちゃうと、

起動される側のアプリのconfig.xmlに、

<tizen:app-control>タグを追記してスキームを設定すればOKです。


もし、以上の内容で不明な点がありましたら、ご連絡頂けますと幸いです。m(_ _)m

2013年7月11日 (木)

【Tizen】ウェブサイトのリンクから、アプリケーションを起動する

AndroidやiPhoneで、ブラウザで表示したウェブサイトのリンクを

タップすると、アプリケーションが起動するというのを見たこと思います。

実際に、実装したことがある人も多いのではないでしょうか。

今回は、これをTizenで実現する方法について記載します。

 

機能の実現には、アプリ側の実装と、それにあわせたウェブサイト側の

実装が必要です。

それぞれについて、説明します。

 

●アプリ側の実装

config.xmlに、以下のとおり<tizen:app-control>タグを追記します。

<?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/test" version="1.0.0" viewmodes="maximized">
    <tizen:app-control>
        <tizen:src name="index.html"/>
        <tizen:operation name="
http://tizen.org/appcontrol/operation/view"/>
        <tizen:uri name="test"/>
    </tizen:app-control>

    <tizen:application id="fF0ic3AiYX.test" package="fF0ic3AiYX" required_version="2.2"/>
    <content src="index.html"/>
    <icon src="icon.png"/>
    <name>test</name>
    <tizen:privilege name="http://tizen.org/privilege/application.launch"/>
    <tizen:setting screen-orientation="portrait" context-menu="enable" background-support="disable" encryption="disable" install-location="auto" hwkey-event="enable"/>
</widget>

追記するのは赤字の部分です。

<tizen:app-control>タグは、アプリが、外部からの起動要求を受け取る条件を

指定するためのものです。

Androidアプリ開発者の方には、intent-filterのようなものと言うと、

解りやすいかもしれません。

 

各タグのname属性への指定値については、以下のとおりです。

タグ名 概要
tizen:src アプリを起動する際に、最初に表示するhtmlファイルを指定する。
tizen:operation

受け取る起動要求の振る舞いを設定する。

今回のように、ウェブサイトのリンクから起動要求を受け取る場合は、

指定値は"http://tizen.org/appcontrol/operation/view"固定。

tizen:uri

ウェブサイトから起動する際の、スキームを設定する。

指定する値は任意でよい。

上記のサンプルソースでは、"test"と指定している。

 

アプリ側の実装は、以上で完了です。

 

●ウェブサイト側の実装

アプリのconfig.xmlに記述したtizen:uriに指定したスキームを、

リンク先として指定すればOKです。

すなわち、ウェブサイトに以下の記述を組み込めばOKです。

<a href="test://" />

本サンプルでは、アプリのconfig.xmlの<tizen:uri>タグには"test"と指定しました。

よって、このアプリを指定するには、上記サンプルのとおり、

ウェブサイトのリンクに"test://"を設定すればOKです。

 

これで、Tizen端末上のウェブブラウザでこのリンクをクリックすると、

アプリが起動するようになります。

より以前の記事一覧

その他のカテゴリー

購入


無料ブログはココログ