esolution-nativescript-photoviewer
由 febriarief 编写 | v3.0.1-alpha-3
一个基于 NYTPhotoViewer pod (iOS) 和 ImageGalleryViewer (Android) 的简单 Photo-viewer 组件。
npm i --save esolution-nativescript-photoviewer

npm npm

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-CarouselNativescript-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-CarouselNativescript-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);

截图

Demo PNG Demo PNG Demo PNG Demo PNG

贡献

我会审查并接受改进插件并赋予认可的拉取请求。

致谢

本插件基于以下库

iOS Android
NYTPhotoViewer ImageGallery