2017-09-27 1 views
0

Je l'ai appelé nativescript-appList Plugin. Je reçois cette erreur d'exécution Impossible de lire la propriété getPackageManager de undefined.Impossible de lire la propriété getPackageManager de undefined dans angular2 nativescript

Je suis en ce code à l'intérieur ci-dessous constructeur dans 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 
     }); 

Dans l'invite de commande, je suis incapable de voir ce journal console.log ("Second", "Test"); Je peux voir seulement ce log console.log ("First", "Test");

Répondre

2

Le plugin semble être incompatible avec un projet Angular mais il existe une solution simple pour le faire fonctionner. Pour ce faire, vous devrez modifier directement le code source du plugin. Ou cloner le repo et appliquer le changement ci-dessous et ensuite npm pack pour produire le fichier tgz nouvellement modifié ou installer le plugin et modifier directement le code dans node_modules/nativescript-applist/Apps.android.js (ce n'est pas la bonne approche car toutes les modifications seront supprimées lorsque vous supprimez le dossier node_modules)

Pour faire fonctionner le plugin dans angulaire follwing faire le - ouvert node_modules/nativescript-applist/Apps.android.js - déplacer les deux premières propriétés chargées paresseusement dans la méthode

par exemple avant

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

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

après

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

    // more code follows here 

Et vous êtes bon pour vous!

+0

merci pour votre réponse. ça n'a pas marché. Je l'ai testé. – Steve

+1

J'ai créé un projet de test et cela fonctionne comme prévu de mon côté avec les changements ci-dessus - êtes-vous sûr de faire les changements dans le fichier source du plugin? Gardez à l'esprit que, pour que ces modifications prennent effet, vous devez conserver le dossier node_modules, mais supprimer le dossier plates-formes et reconstruire le projet. –

+0

Merci, cela a fonctionné comme vous l'avez dit. J'ai supprimé les plates-formes et je l'ajoute à nouveau. – Steve