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

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

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

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

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

JavaScript

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

AngularJS

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

Monaca

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

Q&A

0回答

529閲覧

cordova iosでのローカルに保存したファイルについて

young

総合スコア6

Cordova

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

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

JavaScript

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

AngularJS

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

Monaca

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

0グッド

0クリップ

投稿2017/10/25 13:29

編集2022/01/12 10:55

Cordovaを用いてハイブリッドアプリを作成しています。
javascriptのFrameworkはAngularJSを用いています。

プラグインを用いて、端末でアルバムから画像を取得してアプリに保存して読み込んで表示するようにしました。しかし問題があり、
Androidの場合はビルドしてアプリ更新しても画像を読み込んで表示されるのですが、
IOSの場合ビルドしてアプリ更新すると画像が表示されなくなります。
IOSだとビルドし直すとパスが変わったり、ファイルが削除されてしまうのですか?

Android、iosともにアプリ再起動のみなら画像を読み込んで表示されています。

コード長いのでアルバムから画像取得する関数からファイル保存関数&コールバックの処理だけ記述します。

// ファイル名用の時間 ミリ秒でファイル名 var time; // 新しいファイルの名前 var newFileName; // イメージの保存先 var myFolderName = "user_image"; // Entryオブジェクト一時保持 var saveEntry; var getImage = function(a,b,c) { var options = { // ファイルを返すようにする destinationType: Camera.DestinationType.FILE_URI, // 画像編集あり allowEdit:true, // アルバムを開く sourceType: Camera.PictureSourceType.SAVEDPHOTOALBUM, // 拡張子はJPEG encodingType: Camera.EncodingType.JPEG, // 画質 quality: a, // 画像の横サイズ targetWidth: b, // 画像の縦サイズ targetHeight: c }; // 起動 成功したらuriを返す navigator.camera.getPicture(cameraSuccess, cameraError, options); } //getPictureのコールバック関数 var cameraSuccess = function(uri) { // uriのFileSystemオブジェクトを取得 // 成功したらEntryオブジェクトを返す window.resolveLocalFileSystemURL(uri, resolveSuccess, fileError); } // resolveLocalFileSystemURIのコールバック関数 var resolveSuccess = function(entry) { // Entryオブジェクト保持 saveEntry = entry; // PERSISTENTのFileSystemオブジェクトを取得 // 成功したらFileSystemオブジェクトを返す window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, fileSystemSuccess, fileError); } // requestFileSystemのコールバック関数 var fileSystemSuccess = function(fileSystem) { // myFolderNameというディレクトリを取得(なければ作成) // 成功したらDirectoryオブジェクトを返す fileSystem.root.getDirectory(myFolderName, {create: true, exclusive: false}, DirectorySuccess, fileError); } // getDirectoryのコールバック関数 var DirectorySuccess = function(directory) { // 現在のmsを取得 time = new Date().getTime(); // それを元にファイル名を作成 newFileName = time + ".jpg"; // myFolderNameにファイルをコピー // 成功したらEntryオブジェクトを返す saveEntry.copyTo(directory, newFileName, copySuccess, fileError); } // getDirectoryのコールバック関数 var copySuccess = function(entry) { // URLに変換 // 成功したらURLを返す          ///////////////////////////////          /////ここでURLを保存して起動時にそのURLを読みこむようにしてます。////// ////////////////////////////// //console.log(entry.toNativeURL()); } // ファイル操作エラー関数 function fileError(error) { console.log('ファイル失敗'); console.log('File System Error:' + error.code) } // カメラのエラー用関数 function cameraError(message) { console.log('Camera Error:' + message) } ```

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

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

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

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

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

yuki-saito

2017/10/26 01:11

ソースコードがないのでどういた処理をしているのかイメージしずらいです。可能な限りでもよいので載せてもらえると回答する方もしやすくなるかと思います。
young

2017/10/26 13:20

追記しました
yuki-saito

2017/10/26 13:24

ソースコードは```で囲んでください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問