esolution-nativescript-photoviewer
一个基于 NYTPhotoViewer pod (iOS) 和 ImageGalleryViewer (Android) 的简单 Photo-viewer 组件。
npm i --save esolution-nativescript-photoviewer
- 版本:3.0.1-alpha-3
- GitHub: https://github.com/manijak/nativescript-photoviewer
- NPM: https://npmjs.net.cn/package/esolution-nativescript-photoviewer
- 下载
- 昨日:1
- 上周:3
- 上个月:15
NativeScript PhotoViewer
一个简单的 NativeScript 相册查看器组件。
局限性
由于插件基于两个不同平台的不同库,因此它们的功能也有所不同。
平台 | 状态 | 远程图片(URL) | 本地图片(资源) | 标题/信用 | 相册视图 | 调色板 |
---|---|---|---|---|---|---|
iOS | :white_check_mark | :white_check_mark | :white_check_mark | :white_check_mark | :x | :x |
Android | :x:(损坏) | :white_check_mark | :x | :x | :white_check_mark | :white_check_mark |
如果您有任何关于更好的 Android 库的提示,该库具有与 iOS 相同或类似的功能,请告诉我们。
最新版本
3.0.0
- 支持 iOS 的 NS7/8。此插件的 Android 部分不工作,欢迎提交 PR。
- 最好将 Nativescript-Carousel 和 Nativescript-ImageZoom 结合在一个模态框中,以创建更强大的相册查看器并给您更多控制权。
安装
在您的项目根目录中运行 tns plugin add nativescript-photoviewer
。
使用方法
最好查看包含的演示应用程序以了解高级用法。下面是一个使用原生 NativeScript(ts)以最少努力使插件运行的简单示例。有关 Angular,请参阅 demo-ng
。
// Include the module
import { PhotoViewer, PhotoViewerOptions, PaletteType, NYTPhotoItem } from "nativescript-photoviewer";
var photoViewer: PhotoViewer;
// Create a new instace of PhotoViewer in the onLoaded event. Very important to do the init here!
export function pageLoaded(args: EventData) {
photoViewer = new PhotoViewer();
}
// Show gallery
export function openGallery(args: EventData){
let image1 = "https://blabla/image1.jpg";
let image2 = "https://blabla/image2.jpg";
let image3 = "https://blabla/image3.jpg";
let image4 = "https://blabla/image4.jpg";
let myImages = [image1, image2, image3, image4];
// Example on how to use the options class (optional)
let photoviewerOptions: PhotoViewerOptions = {
startIndex: 0,
ios: {
completionCallback: galleryLoaded
},
android: {
paletteType: PaletteType.DarkVibrant,
showAlbum: false
}
};
photoViewer.showGallery(myImages, photoviewerOptions);
}
变更日志
3.0.0
- 支持 iOS 的 NS7/8。此插件的 Android 部分不工作,欢迎提交 PR。
- 最好将 Nativescript-Carousel 和 Nativescript-ImageZoom 结合在一个模态框中,以创建更强大的相册查看器并给您更多控制权。
2.1.5
- 修复了 iOS 数据源问题(过早垃圾收集)- 在使用相册时会导致图像消失。
2.1.1
- 忘记将 photoviewer.d.ts 文件包含在 npm 包中。请在您的
references.d.ts
中添加对其的引用。 - 添加了原生 js 演示应用程序
demo-js
。
2.1.0
- 修复了 Android 和 iOS 的 promise 处理,现在当关闭相册时将正确解决(在原生 tns 和 Angular 中)。
- 添加了 Angular 演示应用程序
demo-ng
。 - 已知问题 1:从另一个模态打开时,相册不起作用。
- 已知问题 2:在 Android Pie(9)上,由于某些原因,直到您缩放(在模拟器上,未在实际设备上测试),图像才出现。
2.0.2
- 代码重构到 TypeScript,添加了类型定义。
- 将
showViewer()
重命名为showGallery()
,现在它有 1 个强制参数和 1 个可选参数。 - 修复了在 iOS 中图像
datasource
会被 GC 的问题(重要:在onLoaded
事件中初始化插件) - 更新了演示应用程序以反映更改,为 Android 添加了相册演示。
- 已知问题:从另一个模态打开时,相册不起作用。
1.5.0
- 相册现在可以在模态视图中工作,'completionCallback' 错误修复。感谢 @Eonfuzz。
- 修复了 iOS 数据源以更强烈地引用,以及 _android 引用。感谢 @miex0r。
- 已知问题:[iOS]如果通过 URL 加载高分辨率图像,则图像将在显示相册之前被加载。因此,UI 可能会冻结。解决此问题的方法之一是使用
completionCallback
并在打开相册时显示一个旋转器。
1.4.0
- 将索引参数移至属性:
startIndex
- (iOS)添加了设置 completionCallback 的属性
- (Android) 添加了显示专辑或直接进入全屏幻灯片的选项。更类似于iOS。
- (Android) 添加了设置全屏幻灯片背景颜色调板的属性。
- 修复了演示应用
- 将许可证更改为MIT
1.3.0
- 更新了iOS的pod到新版本(修复了小的破坏性变更)
- 向
showViewer(ARRAY, INDEX?)
函数添加了第二个参数。使相册在指定图片上初始化:photoViewer.showViewer(myImages,1);
截图
贡献
我会审查并接受改进插件并赋予认可的拉取请求。
致谢
本插件基于以下库
iOS | Android |
---|---|
NYTPhotoViewer | ImageGallery |