离子电容器 - 画廊截图 (iOS)
Ionic Capacitor - Screenshot to Gallery (iOS)
尚未找到任何解决方案。
我正在使用 Ionic Framework 5+ 和 Capacitor 3+。
我需要能够让用户在 iOS 和 Android 上截取屏幕截图,并将该屏幕截图自动保存到用户的照片库中。 Android 与以下代码配合使用效果很好。 iOS 也可以,但是它将文件保存在一个临时目录中,因此我需要将文件移动到它需要在 iOS 上转到的任何目录,以便用户可以在他们的照片库中看到它。
import { Screenshot } from '@ionic-native/screenshot/ngx';
this.screenshot.save('jpg', 80).then((res) => {
this.filePath = res.filePath;
console.log(this.filePath);
});
有没有办法使用文件系统电容器 API 将此 this.filePath
的照片保存到 iOS 图库?
还有其他方法可以在 iOS 上从屏幕截图转到图库吗?
在 iOS 上,图库是您应用程序外部的东西,无法通过文件系统插件访问,因为没有路径(即使有,iOS 应用程序沙盒化,您无法访问其他应用,只能访问您的应用内容)
您可以使用本机代码将本机 UIImage 保存到图库:
UIImageWriteToSavedPhotosAlbum(yourImage, nil, nil, nil)
但是你有一个本地路径,而不是 UIImage,所以你必须先将路径转换为 UIImage,比如 let yourImage = UIImage.init(contentsOfFile: imagePath)
。因此,使用该代码,您可以创建一个插件来发送路径并将图像保存到图库。
您还可以搜索已经这样做的插件。
有一个将表示图像的 base64 字符串保存到图库中
https://ionicframework.com/docs/native/base64-to-gallery
还有一个capacitor-community/media有一个savePhoto功能,它获取一个路径并将照片保存到图库
这适用于 iOS。我目前正在生产中使用它。根本问题在于,Capacitor Community Media 库没有很好地记录以指定使其工作所需的确切格式。这是库的工作 package.json
版本:"@capacitor-community/media": "github:dragermrb/media"
.
this.screenshot.save().then(async (res) => {
const savePhotoResult = await Media.savePhoto({
path: `file://${res.filePath}`,
album: this.album.identifier
});
});
尚未找到任何解决方案。
我正在使用 Ionic Framework 5+ 和 Capacitor 3+。
我需要能够让用户在 iOS 和 Android 上截取屏幕截图,并将该屏幕截图自动保存到用户的照片库中。 Android 与以下代码配合使用效果很好。 iOS 也可以,但是它将文件保存在一个临时目录中,因此我需要将文件移动到它需要在 iOS 上转到的任何目录,以便用户可以在他们的照片库中看到它。
import { Screenshot } from '@ionic-native/screenshot/ngx';
this.screenshot.save('jpg', 80).then((res) => {
this.filePath = res.filePath;
console.log(this.filePath);
});
有没有办法使用文件系统电容器 API 将此 this.filePath
的照片保存到 iOS 图库?
还有其他方法可以在 iOS 上从屏幕截图转到图库吗?
在 iOS 上,图库是您应用程序外部的东西,无法通过文件系统插件访问,因为没有路径(即使有,iOS 应用程序沙盒化,您无法访问其他应用,只能访问您的应用内容)
您可以使用本机代码将本机 UIImage 保存到图库:
UIImageWriteToSavedPhotosAlbum(yourImage, nil, nil, nil)
但是你有一个本地路径,而不是 UIImage,所以你必须先将路径转换为 UIImage,比如 let yourImage = UIImage.init(contentsOfFile: imagePath)
。因此,使用该代码,您可以创建一个插件来发送路径并将图像保存到图库。
您还可以搜索已经这样做的插件。 有一个将表示图像的 base64 字符串保存到图库中 https://ionicframework.com/docs/native/base64-to-gallery
还有一个capacitor-community/media有一个savePhoto功能,它获取一个路径并将照片保存到图库
这适用于 iOS。我目前正在生产中使用它。根本问题在于,Capacitor Community Media 库没有很好地记录以指定使其工作所需的确切格式。这是库的工作 package.json
版本:"@capacitor-community/media": "github:dragermrb/media"
.
this.screenshot.save().then(async (res) => {
const savePhotoResult = await Media.savePhoto({
path: `file://${res.filePath}`,
album: this.album.identifier
});
});