2017-09-27 4 views
0

Ich bezog dies nativescript-appList Plugin. Ich bekomme diesen Laufzeitfehler Kann die Eigenschaft getPackageManager von undefined nicht lesen.Kann nicht lesen Eigenschaft getPackageManager von undefiniert in angular2 nativescript

Ich laufe dies unter Code innerhalb Konstruktor in angular2-nativescript

import * as AppList from "nativescript-applist"; 

// inside the constructor 

console.log("First", "Test"); 

    AppList.getInstalledApps(function(apps) { 

     console.log("Second", "Test"); 

     }, { 
      withIcons: true 
     }); 

In Eingabeaufforderung Ich bin nicht auf dieses Protokoll console.log sehen ("Second", "Test"); .Ich kann nur diese log console.log ("First", "Test") sehen;

Antwort

2

Das Plugin scheint mit einem Angular-Projekt inkompatibel zu sein, aber es gibt eine einfache Lösung, damit es funktioniert. Um dies zu tun, müssen Sie den Quellcode des Plugins direkt ändern. Entweder klonen Sie das Repo und wenden Sie die Änderung unten an und dann npm pack, um neu modifizierte tgz Datei zu erzeugen oder das Plugin zu installieren und den Code in node_modules/nativescript-applist/Apps.android.js direkt zu ändern (das ist nicht der gute Ansatz, da alle Änderungen entfernt werden, wenn Sie den Ordner node_modules löschen) offen node_modules/nativescript-applist/Apps.android.js - - bewegt die ersten beiden lazily geladen Eigenschaften innerhalb der Methode

zB

Um die Plugin Arbeit in Angular tun, um das follwing zu machen vor

var androidApp = app.android; 
var androidAppCtx = androidApp.context; 

function getInstalledListOfApps(callback, cfg) { 
    // more code follows here 

nach

function getInstalledListOfApps(callback, cfg) { 
    var androidApp = app.android; 
    var androidAppCtx = androidApp.context; 

    // more code follows here 

Und Sie sind gut zu gehen!

+0

danke für deine antwort. Es hat nicht funktioniert. Ich habe es getestet. – Steve

+1

Ich habe ein Testprojekt erstellt und es funktioniert wie erwartet auf meiner Seite mit den obigen Änderungen - sind Sie sicher, dass Sie die Änderungen in der Quelldatei des Plugins vornehmen? Beachten Sie, dass Sie, damit diese Änderungen wirksam werden, den Ordner "node_modules" beibehalten, aber den Ordner "platforms" löschen und das Projekt neu erstellen müssen. –

+0

Danke, dass es funktioniert hat, wie Sie gesagt haben. Ich habe Plattformen entfernt und füge sie erneut hinzu. – Steve

Verwandte Themen