質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Cordova

Cordovaは様々なデバイスで使うことができるオープンソースなモバイル用開発プラットフォームです。開発者に各デバイスの元のプラットフォームで開発する必要をなくし、HTML・JavaScript・CSSなどの一般的なウェブのテクノロジーを使ってすべてのデバイスで展開することができるモバイルのアプリケーションを生成することを可能にします。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Onsen UI

HTML5で記述されたモバイルアプリの高速化、およびネイティブアプリライクなUIが作れるフレームワーク。 様々なJavaScriptフレームワークと併せて使用することができます。スマートフォン向けアプリ、Webサイトに必要なアニメーション、UI/UXを実装することが可能になります。

Monaca

「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。

Q&A

解決済

1回答

670閲覧

cameraプラグインを使用したときのエラーに関して

haniwaoshi

総合スコア17

Cordova

Cordovaは様々なデバイスで使うことができるオープンソースなモバイル用開発プラットフォームです。開発者に各デバイスの元のプラットフォームで開発する必要をなくし、HTML・JavaScript・CSSなどの一般的なウェブのテクノロジーを使ってすべてのデバイスで展開することができるモバイルのアプリケーションを生成することを可能にします。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Onsen UI

HTML5で記述されたモバイルアプリの高速化、およびネイティブアプリライクなUIが作れるフレームワーク。 様々なJavaScriptフレームワークと併せて使用することができます。スマートフォン向けアプリ、Webサイトに必要なアニメーション、UI/UXを実装することが可能になります。

Monaca

「Monaca」はiOS、Android、Windows向けのアプリ開発に対応した、Cordovaベースのモバイルアプリ開発プラットフォームです。HTML5、JavaScriptといったWeb標準技術を用いてモバイルアプリ開発を行うことができます。

0グッド

0クリップ

投稿2018/11/02 06:29

編集2018/11/05 08:06

前提・実現したいこと

navigator.camera.getPicture()関数を使用したカメラアプリの作成

発生している問題・エラーメッセージ

TypeError: undefined is not an object (evaluating 'navigator.camera.getPicture')

該当のソースコード

<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> <meta http-equiv="Content-Security-Policy" content="default-src * data: gap: https://ssl.gstatic.com; style-src * 'unsafe-inline'; script-src * 'unsafe-inline' 'unsafe-eval'"> <script src="components/loader.js"></script> <script src="lib/onsenui/js/onsenui.min.js"></script> <link rel="stylesheet" href="components/loader.css"> <link rel="stylesheet" href="lib/onsenui/css/onsenui.css"> <link rel="stylesheet" href="lib/onsenui/css/onsen-css-components.css"> <link rel="stylesheet" href="css/style.css"> <script> navigator.camera.getPicture( cameraSuccess,cameraError,[cameraOptions]); var options = { sourceType : Camera.PictureSourceType.CAMERA, saveToPhotoAlbum: true, correctOrientation: true, destinationType: Camera.DestinationType.FILE_URI }; var option = { sourceType : Camera.PictureSourceType.PHOTOLIBRARY }; var images = null; //ギャラリーから画像のパスを取得する var getPictureFromGallery = function(onSuccess){ var options = { quality: 50, sourceType : Camera.PictureSourceType.PHOTOLIBRARY, destinationType : Camera.DestinationType.FILE_URI }; navigator.camera.getPicture(function(imageURI){ onSuccess(imageURI); },onFail,options); }; //写真を撮影して保存する var getPictureFromCamera = function(onSuccess){ var options = { sourceType : Camera.PictureSourceType.CAMERA, saveToPhotoAlbum: true, correctOrientation: true, destinationType: Camera.DestinationType.FILE_URI }; navigator.camera.getPicture(function(imageURI){ onSuccess(imageURI); },onFail, options); }; function onFail(){ console.log("写真を取得できませんでした") } $(document).on('pageinit', '#main-page', function(){ var onSuccess = function(pictureUrl){ images = []; var $img = $('<img>'); $img.attr('src', pictureUrl); images.push({ element: $img, label: '無加工' }); myNavi.pushPage('image.html'); } $(this).on('click', ',take-from-camera', function(){ getPictureFromCamera(onSuccess); }); $(this).on('click', ',take-from-gallery', function(){ getPictureFromGallery(onSuccess); }); }); </script> </head> <body> <ons-navigator var="myNavi">画面の切り替え <ons-page id="main-page"> <ons-toolbar> <div class="center">画像変換アプリ</div> </ons-toolbar> <br> <ons-list> <ons-list-item modifier="chevron" class="take-from-gallery"> <ons-icon icon="ion-images"></ons-icon>ギャラリーから選ぶ </ons-list-item> <ons-list-item modifier="chevron" class="take-from-camera"> <ons-icon icon="ion-camera"></ons-icon>カメラで撮影 </ons-list-item> </ons-list> <br> </ons-page> </ons-navigator> <ons-template id="image.html"> <ons-page id="image-page"> <ons-toolbar> <div class="left"> <ons-back-button ons-if-platform="ios">Back</ons-back-button> </div> <div class="center">画像</div> </ons-toolbar> <ons-carousel var="imageCarousel" class="image-carousel" fullscreen auto-scroll overscrollable> </ons-carousel> </ons-page> </ons-template> </body> </html>

補足情報(FW/ツールのバージョンなど)

具体的なソースコードの訂正案など書いていただけると嬉しいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

最初のエラーは、navigator.cameraが存在していないようです。
TypeError: undefined is not an object (evaluating 'navigator.camera.getPicture')
(navigatorは、基本的にすべてのブラウザに存在します)

navigator.camera.getPictureで検索すると、
Apache Cordovaがヒットしますが、こちらを利用しようとしていますか?

バージョンがわかりませんが、最新のドキュメントでこの部分に「Supported Platforms」とあり、すべての環境でサポートしているものではないようです。

「補足情報」にツールの情報を記載して、できればタイトルも具体的にしていただくと回答されやすいと思います。

投稿2018/11/12 03:19

NozomuIkuta

総合スコア1260

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

haniwaoshi

2018/11/12 04:29

回答ありがとうございます。 無事今回の問題に関しては解決することができました。 次回からはもう少し質問に詳細な情報を記載したいと思います。
NozomuIkuta

2018/11/12 04:36

解決したようで良かったです。 質問を「解決済」に設定していただけると、他の方が検索するときに便利なので、 よろしくお願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問