cordova-plugin-fileを使用できます。 DATA_URL
は非常にメモリ集約することと、アプリがクラッシュしたり、アウトを引き起こす可能性があるので、私はまた
destinationType: Camera.DestinationType.FILE_URI
(アンドロイド)または
destinationType: Camera.DestinationType.NATIVE_URI
(IOS)
ため
destinationType : Camera.DestinationType.DATA_URL,
オプションを変更しますのメモリエラー。可能であれば、FILE_URI
またはNATIVE_URI
を使用してください。
したがって、デバイス上のイメージへのパスを取得することです。これで、その写真をあなたのアプリ用に作成したフォルダ(永久保存版 )に移動し、そのパスを使用してプロフィールページに写真を表示することができます。私はこのコルドバプラグインは、それをファイルに使用は、イオン性ネイティブの一部ではなかったので、コードは少し醜いです...
Camera.getPicture(/*...theOptions*/).then(
(imagePath) => {
// Create a new file name by using the username or something like that
let aDate = new Date(),
aTime = aDate.getTime(),
userName = this.myCustomUserService.getUserName(),
newFileName = userName + aTime + ".jpg";
// Returns a reference to the actual file located at imagePath
window.resolveLocalFileSystemURL(imagePath,
(file) => {
// Returns a reference to the file system
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0,
(fileSys) => {
// Gets a reference to your app directory, and if it doesn't exist it creates it
fileSys.root.getDirectory('yourAppFolderName', {create: true, exclusive: false},
(directory) => {
// Moves the file to that directory, with its new name
file.moveTo(directory, newFileName,
// The file was succesfully moved and it returns a reference to it. We can use nativeURL to grab the
// path to the image on the device
(fileEntry) => {
this.myCustomUserService.SetProfilePhotoUrl(fileEntry.nativeURL);
},
// Now we start handing all the errors that could happen
(error) => {
// The file was unable to be moved
// Show error to the user
// ...
});
},
(error) => {
// Could not get a reference to your app folder
// Show error to the user
// ...
});
},
(error) => {
// Could not get a reference to the file system
// Show error to the user
// ...
});
});
},
(err) => {
// Could not take picture
// Show error to the user
// ...
});
をphotoAlbumに保存してください。 imagUriには、画像をプロファイルタブに表示するための画像へのパスが含まれています。ユーザーがアルバムからこの画像を削除する可能性があります。この画像を保存できる他のプライベートスペースはありますか? – runtimeZero
次に、ファイルプラグインを使用できます。しかし、データベースに保存するのが最善の方法だと思います。より安全で、簡単に照会できます。 FirefoxのIndexedDBをサポートしているので、PouchDBプラグインをお勧めします。http://gonehybrid.com/how-to-use-pouchdb-sqlite-for-local-storage-in-ionic-2/ –