Monaca/Cordovaでプラットフォームの判定する

MonacaやCordovaでは、マルチプラットフォームを唄っているのですが、実際にアプリを開発していくと、
プラットフォームごとに別々の処理を行いたいことがあります。

例えば、iOSでは画像ファイルをDocumentsに保存したいが、Androidでは、/sdcard/の下に保存したいなど。

devicereadyイベント発火後であれば、次のコードでプラットフォームごとに異なる処理を実行出来ます。

if (cordova) {
  if (cordova.platformId == 'android') {
    // Androidの処理
  } else if (cordova.platformId == 'ios') {
    // iOSの処理
  } else if (cordova.windowsId == 'windows') {
    // Windowsの処理
  }
} else {
  // Cordova以外での処理
  // 例:MonacaのプレビューやChromeAppなど
}


なお、それぞれの定義は、各プラットフォームごとにのcordova.jsでなされています。

Android

https://github.com/apache/cordova-android/blob/master/bin/templates/project/assets/www/cordova.js

define("cordova/platform", function(require, exports, module) {

// The last resume event that was received that had the result of a plugin call.
var lastResumeEvent = null;

module.exports = {
    id: 'android',
    ...
iOS

https://github.com/apache/cordova-ios/blob/0f34d79a60883a4774e74d6f14481a997a5c9bad/CordovaLib/cordova.js

define("cordova/platform", function(require, exports, module) {

module.exports = {
    id: 'ios',
    ....
Windows

https://github.com/apache/cordova-windows/blob/master/template/www/cordova.js

define("cordova/platform", function(require, exports, module) {

module.exports = {
    id: 'windows',
    ...