科尔多瓦 - 从设备获取一系列图像? (自定义图库浏览器)

时间:2016-01-18 01:56:52

标签: cordova cordova-plugins ngcordova

我正在使用Cordova应用程序,该应用程序需要构建自定义图库浏览器选择器。我在Instagram和Twitter(如下图所示)应用程序中看到了类似的东西,允许用户从相机胶卷中选择图像,而无需打开默认的操作系统提供的图像选择器。我一直在寻找插件,并且只找到了使用默认图库选择器的东西。

我认为解决这个问题的方法是从某种程度上从操作系统中获取某种类型的图像,然后从中你可以构建你的图像库选择器,但我不确定如何去做这一点。

任何人都有任何想法或解决方案?

谢谢!

PS。这是iOS上的Twitter应用程序的屏幕截图。在撰写推文时,它允许您滚动浏览从最新到最旧的图像列表,而无需打开默认的iOS图像选择对话框。

Custom Image Gallery in Twitter App

1 个答案:

答案 0 :(得分:0)

你可以通过cordova文件插件(https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-file/

来实现

但是我使用的是Ionic Native(cordova文件插件的包装),步骤必须相同。

import { File } from '@ionic-native/file'

class MyFiles {

    constructor(private file: File ){
       this.getFiles("WhatsApp/Media") // Here I am trying to get the photos from WhatsApp application. You may provide any other folder or root folder.
    }


    getFiles(dir: string): void {

        this.file.listDir(this.file.externalRootDirectory, dir).then(
          (files) => {

            for (let file of files) {
              if (file.isDirectory && file.name != '.' && file.name != '..') {
                this.getFiles(dir + "/" + file.name) // recursively scan sub dirs
              } else {
                if (file.nativeURL.endsWith("jpg") || file.nativeURL.endsWith("jpeg") || file.nativeURL.endsWith("gif")) {
                  // Do your stuff with file
                  }
                }
              }
            }
          }
        ).catch((err) => {
          console.log(err.toString())
        });
}