2016年1月27日水曜日

プラットフォームを追加したら Error: Platform windows already added

platformフォルダに windows,android など既に追加使用しているものがないか確認する。
ある場合はフォルダ毎削除

windowsをrmすると高確率で残ります。

Windows Universal アプリ アプリ名多言語対応

  • CordovaAppを選択しフォルダ作成で「Strings」フォルダを直下に作成
  • Stringsフォルダ以下に言語フォルダを作成する(enとしなかったのはcordovaはディフォルト言語をen-USと入れてくるため)
    • Strings/en-US
    • Strings/ja
  • それぞれの言語フォルダに 「resouces.resjson 」ファイルを作成
  • resouces.resjsonを編集
{
  "AppName": "EnglishName"
}
  • package.windows10.appxmanifestを編集します(ビジュアル編集でもコード編集でも可)
  • 多言語文字列が必要な場所に「ms-resource:AppName」を入れていきます。
  • ビジュアルの場合
    • 「アプリケーション」タブ「表示名」
    • 「ビジュアル資産」タブ「タイル:短い名前」
    • 「パッケージ化」タブ「パッケージ表示名」
  • 規定言語に設定した言語がディフォルト元となります。
注意
  • ビルドすると「タイル:短い名前」以外は元に戻ります。

2016年1月26日火曜日

Windows Universalアプリ アイコン・スプラッシュスクリーン


<platform name="windows">
        <icon width="150" height="150" src="res/windows/icon-150.png"  />
</platform>

cordova本家のドキュメントにwindowsの記述はありませんが、サイズをあわせるとコピーされました。
ただし、cordova規定しているサイズのものしかコピーされませんでした。
また、バッジ画像もサイズを合わせてもコピーされませんでした。
面倒がないようにCordovaがディフォルトで作成するアイコンのサイズのものは用意しておいた方が良いと思います。それでバッジアイコン以外は全て埋まります。



Cordova Windows UAP Content-Security-Policyでリソースがディレクティブに違反しました

画像などのURLをバインドすると CSP違反というエラーが出て読み込めませんでしたが、よく見ると画像のパスが unsafe:ms-appx-web://**** とunsafe:がついています。
これはangularjsがつけたものですので、compileProvider.imgSrcSanitizationWhitelist でms-appx-webを追加してあげます。

Cordova Windows Universalアプリ開発 APPHOST9626

/ja/****.html や/en/*****.pngを呼ぼうとするとこのエラーが出ます。
言語が入ったパスを使ってはいけないようです。
Microsoftのドキュメントで解決策はリネームしてくださいとなっています。(もしくは多言語化の仕様に乗っとるか)

2016年1月25日月曜日

cordovaでWindows Universal アプリを作成 感想

ios,android向けのCordovaアプリをwindows universalアプリに対応した際のメモです。

crosswalkもwindowsに対応しているようですがwindows10の1バージョンの対応ですので今回は使わずに対応しました。

感想

  • 情報の入手[bad] 
    • Windows Universalアプリの作者も少ない中でさらにCordovaなので情報がとても少ないです。
  • 対応の手間[bad] 
    • AndroidをiOSに対応するよりも面倒でした。市場がとても小さいことを考えると対応の必要があるかを考える必要があると思います。
  • プラグイン[bad] 
    • windowsに対応しているプラグインであってもwin10への対応を既に捨てて8.1のみであることがあります。
  • バグ[bad]
    •  アニメーションにジャギーが出る。処理落ちで画面が化けている。
    • ビルドしているとVisualStudioのソリューションファイルが時々壊れて初めからになる。
    • なぜかパッケージの翻訳に日本語,英語に加えていつも「オランダ語」が含まれる。
    • 開発者向けのWebページに不具合が多い。(特にEdge,IE以外を使った場合)
  • 処理速度[good] 
    • PCであることを考慮してもアプリの起動が早いです。メモ帳を開くぐらいの感覚で使ってもらえそうです。
  • 公開の手間[good]
    • 公開向けのパッケージの作成はとても親切なので、迷わずに行えました。
    • アプリの説明やスクリーンショットは他のストア共通化できるものが少なかったですが、画像サイズなどが柔軟で作りやすかったです。細かく説明したい人にも、簡単に説明したい人にも親切な設計でした。
  • 審査[bad]
    • 申請から1時間で審査が通りました。極めて迅速です。ストアのWebページへの掲載は6時間ぐらいはかかりました。アプリによっては審査合格後2日経っても未だに掲載されません。
  • ダウンロード数[Ummm]
    • Androidでそこそこのダンロード数のアプリであってもwindowsストアではほぼありません。自分自身も一度もストアからダウンロードしたことないですし..
  • クラッシュ[Ummm]
    • クラッシュの報告率が極めて高いです。Windows10の1バージョンということでテストは楽かと思っていましたが、いろいろなテスト環境が欲しいところです。

最初に知っておくこと

  • local context, web context(cordovaの記載ではremote mode)による制限

ビルド,実行

cordova build windows
cordova run windows

アーキテクチャの指定が必要な場合
cordova run windows --archs="x86"

windowsのターゲットを指定する場合 uap(universalアプリ)
--appx=uap

ビルドを行うと/platform/windowsにvisual sutdioのソリューションファイルができます。(CordovaApp.sln)

config.xml

ターゲットのwindowsのバージョン(指定しないとwin8.1も入ってくるようです)
<preference name="windows-target-version" value="10.0">


Angularjsを使ってwin8.1もターゲットにする場合

エラーが出て実行できないのでMicrosoftから出されているライブラリが必要です。
(win10.0のみをターゲットにしたほうが良いと思います。)

cordovaのプラットフォーム,バージョンをjsで取得する


プラットフォーム取得

cordova.platformId
//ex: windows

バージョン取得

cordova.platformVersion
//ex: 4.1.0