2016年1月29日金曜日

Cordova 6.0.0 リリース

Cordovaもメインバージョンが6.0.0に上がりました。大きなのは各プラットフォームのディフォルトバージョンが Cordova Androidは5, Cordova iOSは4 となったことでしょうか。

公式ブログ

Cordova Android4.1.1 -> 5.1.0 にアップデート

  • 開発端末のアプリのデータがリセットされたので注意が必要です。

Cordova iOS 3.9,2 -> 4.0.1へのアップデート

  • 公式としてWKWebViewをサポート。
  • sqliteプラグインとの相性が悪いのかDBが開けないことがあります。
  • bitcodeが最初からoffになっています。(自分でoffにする必要なし)
  • LanguageがEnglishのみになっていました。
  • アイコンの画像がビルドに含まれないので自分で含んであげる必要がありました。

Cordova Windows 4.2.0 -> 4.3.0(4.3.1)へのアップデート

  • 認定テストツールでの文字コードエラーがなくなるため対応不要になりました。
  • [注意] 重大なバグ修正を含んだ4.3.1がでていますが、こちらはバグ修正の影響で逆にindex.htmlのパスを見つけられなくなってしまいました。動かない場合は4.2.0を使うしかありません。  今は4.3.0は動かず4.3.1が動きます。

jQuery Mobile は生きている

既に現在のメインリリースバージョン1.4が出てから1年以上経ち、プロジェクトがまだ生きているのか疑問視する声が上がっていましたjQuery Mobileですが、本日開発ブログが1年3ヶ月ぶりに更新されました。

A long overdue status update

jQuery Mobileと他のモバイルフレームワークとの違いは PCのWebブラウザ(IEなど)もサポートしていることでした。
しかしながら、あまりにもサポート範囲を広く取りすぎてパフォーマンスの面などで劣っていましたが、今後はIE11以上などをサポートしていく方針などを打ち出されています。

「Cordovaでスマホアプリ」も「PCのWebアプリ・サイト」も両方開発する場合などには選択肢として選ぶことができるのではないでしょうか。
ionic,onsenuiも次のバージョン2ではネイティブにより近いデザインとなっていきますが、カスタマイズを前提としたオリジナルデザインのフレームワークとして頑張って欲しいです。

2016年1月28日木曜日

Cordova Windows Universalアプリ開発 ストアからアプリを削除

アプリをストアから非公開にしたいと思い、ボタンを探しましたが見つかりませんでした。
Webで調べるとやはり同じような状況の方がいらっしゃいました。

Windowsストアアプリの公開を停止してみた(Windows Dev Center)

自分用に手順を箇条書きすると

  • 申請を新たに作成
  • 「価格と使用可能状況」
  • 「分布と認知度」
  • 「非表示にして取得できないようします」をチェック
  • 保存して申請
  • 申請が許可されると「非売品」の表示に変わります





Visual Studioアカウント接続エラー

visual studio で予期しないエラーが発生したため、Microsoftアカウントサービスに接続できません

上記のようなエラーが出てストアアプリのパッケージ化ができなくなりました。
それにしても何も解決の糸口すら与えないこのエラーメッセージはいいですね。諦めがつきそうです。

Microsotのサポートに問い合わせたところ、現在(2016/1/28)対策中とのことでしたので同様の症状の方がいらっしゃいましたらとりあえず待ちましょう。

エラーが出なくなり無事にアプリをパッケージ化できるようになりました。

cordovaでwindows universalアプリ作成 プラグイン使用時の注意事項

Sqliteプラグイン

--archs="x86"をビルド時に設定しなければエラーとなる。

sqlite3ファイルの場所

{ドライブ}¥Users¥{ユーザ名}¥AppData¥Local¥Packages¥{パッケージ}¥LocalState

LocalStoreに置かれました。iosと違いこのあたりの置き場のディフォルトの指定がどうやって行うのかわかりませんでした。

プラグインのドキュメントにはdeleteDatabaseが実装されていないと書かれていたが使える。(8.1のみ使えないのかも)

SocialSharingプラグイン

Android,iosはメッセージ,リンク,画像のシェアができますが、画像のシェアができません。
現状画像のシェアができるプラグラインがないので後ほど作成したいと思います。


Admobプラグイン

Admobはwindows8 phoneのみの対応である。
(windows universalアプリはPC,タブレット,スマホも含まれるためAdmobが対応していないのも仕方がないと思います)

Fileプラグイン

cordova.fileを参照することができない(バグ?)

2016年1月27日水曜日

CordovaでWindows Universalアプリ作成 他の言語(オランダ語)が自動的に追加される

英語と日本語しか対応していないにもかかわらずストアリリース用にパッケージ化して、ストアにアップロードするとなぜか、オランダ語も含まれており、説明文やスクリーンショットの記載を求められました。

 Webで調べるとブルガリア語が追加されている方もいらっしゃいました。

Windows 8:ブルガリア物語顛末 眠るシーラカンスと水底のプログラマー

Cordovaの問題かと思いましたが、パッケージ化するVisual Studioの自動言語抽出機能?が問題のようでした。cordovaプラグインにnlドメインを使うものがあるため、プラグイン内でオランダ語を使っているのかもしれません。

対応

  • ***.appxmanifestファイルをコードベースで開きます。
  • <Resources><Resource Language="x-generate" /> を見つけます
  • <Resource Language="x-generate" />を削除します。
  • 代わりに以下を入れます(日本語と英語(米国)を入れる場合)
    • <Resource Language="JA" /><Resource Language="EN-US" />

プラットフォームを追加したら 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

2016年1月14日木曜日

iTunesでiosアプリのファイルを共有

Cordovaに限った話ではありません。
アプリで作成したファイルをiTunesを使ってやりとりをする場合はplistファイルへ設定を行います。

platforms/ios/{アプリ名}/{アプリ名}-info.plistをエディタで開いて以下のキーを追加

<key>UIFileSharingEnabled</key>
<true/>

もしくは

 xcodeでプロジェクトファイルを開いて Resources/{アプリ名}-info.plistを開いて「Application supports iTunes file sharing」を追加してvalueをYESに設定

2016年1月4日月曜日

CordovaでMac OSXのアプリを作成する

platform listで以前からosxの文字があり気になっていましたので、画面を表示するところまで行ってみました。
CordovaのWebサイトにもOSXの記述はないためサポート対象ではないようです。また、ほとんどのプラグインが使えないので実質オフラインでブラウザを表示しているだけの状態です。

1. 画面を表示するまでの手順

参考 Github cordova-osx

cordova create hello-osx org.eniblo.cordova.osx HelloOSX
cd hello-osx
cordova platform add osx@3.4.1 --save
cordova run osx

アプリ画面

右クリックで再読み込みボタンが表示されました。
(この時点でストアの審査は難しそうです)

dockにはアイコンが表示されています

iphoneのcordovaアプリはPCのsafariで認識して開発コンソールを表示できますが、このosxのアプリはリストに表示されませんでした。

2. リリースファイルの作成

ドキュメントには書いてありませんでしたが推測で行いました。

cordova build osx --release



3. サポートされている?プラグイン

  • Fileプラグイン

4. 感想

以下ができるとUIを簡単に作れるという点からもいろいろと使えそうです。
  • メニューを操作するプラグイン
  • コマンドを実行するプラグイン

Onsenui 日付ピッカー

Framework7のようにスライドするものは作れませんでしたがツールバーで前後に移動するものは作ることができました。Githubに置いておきます。

タブレット

スマホ