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

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

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

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

JavaScript

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

AngularJS

AngularJSはオープンソースのJavaScriptフレームワークです。ブラウザ上で動作するウェブアプリケーションの開発にMVCアーキテクチャを取り入れることを目的としています。

Monaca

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

Q&A

0回答

3337閲覧

monacaで画像の保存がうまくいかない

sarada661

総合スコア16

Cordova

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

JavaScript

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

AngularJS

AngularJSはオープンソースのJavaScriptフレームワークです。ブラウザ上で動作するウェブアプリケーションの開発にMVCアーキテクチャを取り入れることを目的としています。

Monaca

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

0グッド

0クリップ

投稿2017/01/12 12:57

###前提・実現したいこと
現在、monaca(2.0.0-rc.1)を利用してアプリを開発中、angularjs(1.4.3)を利用しています。

navigator.camera.getPicture()で画像を取得し、
imgタグで取得の度に表示を行い、
保存用の関数を実行することで、fileEntryを用いて保存を行いたい。

###発生している問題・エラーメッセージ
一度保存処理を行った後(この時点で保存処理成功の関数は実行されているが、保存はされていない。)、
もう一度画像をiPhoneのフォトライブラリから選択すると、/tempフォルダ内に保存されている古い画像が表示される。

*同様の処理を行っている箇所が1つあります。差分はimgタグのidのみです。
*保存パスは既に初期化されており、画像が保存されている。選択した画像を保存する際、この画像を上書きしたい。
*構成の問題から、画像を選択する処理と、画像を保存する処理は別コントローラーにある。
*画像の保存先は既にrequestFileSystemでPERSISTENTを取得しており、localSystem('local_path')に保存してあります。

###該当のソースコード

<!-- page.html --> <略> <img id="icon_img" src =""> <input ng-click="selectImage();" value="ファイルを選択してください" type="button"> <略> <!-- select-controller.js --> <略> document.getElementById("icon_img").src = localStorage.getItem('local_path') + 'icon.jpg'; $scope.selectImage = function(){ navigator.camera.getPicture(function(imageData){ if(typeof(imageData) != 'undefined' && imageData != '') { document.getElementById("icon_img").src = imageData; } }, function(e){ console.log('error'); },{ quality: 50, destinationType: Camera.DestinationType.FILE_URI, sourceType: navigator.camera.PictureSourceType.PHOTOLIBRARY }); } <!-- controller.js --> <略> var dir; requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem){ dir = fileSystem.root; },function(e){ console.log('error'); }); var imageData = document.getElementById("icon_img").src; document.getElementById('test').innerHTML = imageData; resolveLocalFileSystemURI(imageData,function(fileEntry){ fileEntry.moveTo(dir,'icon.jpg',function(entry){ console.log('move image file is success'); },function(e){ console.log('error'); }); },function(e){ console.log('error'); }); <略>

###試したこと
tempファイルの削除処理を画像の保存後に実行した。
directoryEntryで下層のfileEntry全てにremove()を行ったが、
過去のtempファイルは削除出来るものの、保存を行った画像のtempファイルだけ
残ってしまい。次回画像選択時、その画像が表示されてしまう。

###補足情報(言語/FW/ツール等のバージョンなど)
monaca(2.0.0-rc.1)
angularjs(1.4.3)

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問