imagenativescriptangular2-nativescriptnativescript-plugin

nativescript image-picker not working


I'm using the plugin image-picker for nativescript and I copied the example code to see how it works and to adapt it to my code. But the code doesn't work. When I tap the button it's supposed that the screen gallery from my device should be opened, but nothing happen when I tap the button.

The code below is how I implements this.

album_list.component.ts

import { Component } from '@angular/core';
import { RouterExtensions } from 'nativescript-angular/router';

//image picker
var imagepicker = require("nativescript-imagepicker");


@Component({
    selector:'album_list',
    moduleId: module.id,
    templateUrl: "album_list.component.html",

})

export class AlbumListComponent{

    constructor(private routerExt: RouterExtensions ){}


    ngOnInit() {

    }

    onSelectMultipleTap() {
        console.log('Im in');

        function selectImages() {
            var context = imagepicker.create({
                mode: "multiple"
            });

            context
                .authorize()
                .then(function() {
                    return context.present();
                })
                .then(function(selection) {
                    console.log("Selection done:");
                    selection.forEach(function(selected) {
                        console.log(" - " + selected.uri);
                    });
                }).catch(function (e) {
                    console.log(e);
                });
        }

    }


}

album_list.component.html

<StackLayout>
        <Button text="Pick Multiple Images" (tap)="onSelectMultipleTap()" > </Button>
</StackLayout>

As I said, when I tap the button in the html the log from the function onSelectMultipleTap appears, but nothing else.

Thanks!!


Solution

  • You arent calling selectImages(), you just declare it. Replace with this:

    onSelectMultipleTap() {
        console.log('Im in');
    
        function selectImages() {
            var context = imagepicker.create({
                mode: "multiple"
            });
    
            context
                .authorize()
                .then(function() {
                    return context.present();
                })
                .then(function(selection) {
                    console.log("Selection done:");
                    selection.forEach(function(selected) {
                        console.log(" - " + selected.uri);
                    });
                }).catch(function (e) {
                    console.log(e);
                });
        }
        selectImages()
    
    }