質問: お世話になります。タイトルで書いたことをやりたいのですがエラーが発生します。 最初から順に書きますので漏れなどあればご教示ください。 Monacaを使用しています。 1.新規プロジェクトから「Onsen UI最小限のテンプレート(ユニバーサルアプリ対応版)」を選択 2.「ファイル」-「Cordavaプラグインの管理」から「Cordovaプラグインのインポート」をクリック 3.「ZIP形式のプラグイン」を選んで、配布元から落としたZipをインポート インポート結果が下記画像になります。 ![画像の説明をここに入力](https://i.stack.imgur.com/BhERD.png) 4.index.htmlのscript内を下記に変更 ``` ``` IOS9.3でMonacaデバッガーから起動すると下記エラーが発生 「TypeError: Cannot read property 'getPictures' of undefined」 カメラプラグインを有効にすると 「TypeError: undefined is not an object (evaluating 'window.imagePicker.getPictures')」となります。 追記: DeviceプラグインとinAppBrowserプラグインも追加しております。
回答: 冒頭のif文でdevicereadyが発火済みかどうかチェックしているのだと推測しますが、window.deviceが存在することはdevicereadyが完了していることを保証しません。したがってdevicereadyイベントの発火前にonDeviceReady()関数が呼ばれたためにエラーになっているのでしょう。 また、 ``` document.addEventListener("deviceready", onDeviceReady, false); ``` で登録された関数はdevicereadyが既に発火済みの場合は即時実行されますので ``` if(typeof device === 'undefined'){ document.addEventListener("deviceready", onDeviceReady, false); }else{ onDeviceReady(); } ``` この部分は ``` document.addEventListener("deviceready", onDeviceReady, false); ``` これで十分です。