WebHU - Programozási kérdések és válaszok

Ionic4 – A PhotoViewer a következő példákon és dokumentáción kívül nem működik. A kép nem jelenik meg

Miután elolvastam az összes kapcsolódó bejegyzést a StackOverFlow-ban és más webhelyeken, beleértve az Ionic dokumentációt is, nem tudom működésre bírni. Megpróbáltam megismételni ugyanazt, így jelenleg ez van:

Az app.module.ts fájlban

    import { PhotoViewer } from '@ionic-native/photo-viewer/ngx';        

és

    @NgModule({
     declarations: [AppComponent],
     entryComponents: [],
     imports: [BrowserModule, IonicModule.forRoot(), AppRoutingModule],
     providers: [
     StatusBar,
     SplashScreen,
     { provide: RouteReuseStrategy, useClass: IonicRouteStrategy },    
     PhotoViewer

  ],
  bootstrap: [AppComponent]
})
export class AppModule {}

itt: home.page.ts

import { PhotoViewer } from '@ionic-native/photo-viewer/ngx';


export class HomePage {

  constructor(private photoViewer: PhotoViewer) { }

  openImage() {
    this.photoViewer.show(''../assets/baluarte.jpg');
} 
}

és a kezdőlapon.page.ts

<ion-content padding>  
  <img src="../assets/baluarte.jpg" (click)="openImage()"/>
 <ion-button (click)="openImage()">View</ion-button>
</ion-content>

Azt szeretném elérni, hogy megjelenjen a kép, és amikor rákattintok, az Ionic megemlíti a képét teljes képernyőn, és képes pásztázni, nagyítani és megosztani a képet. De én is megpróbálom. ideje, hogy legyen egy gomb ugyanazzal a funkcióval, csak hogy megbizonyosodjunk arról, hogy a hiba nem látható a képen.

Belül is

 this.photoViewer.show(''../assets/baluarte.jpg');

URL-lel is próbálkozom, mert nem vagyok benne biztos, hogy működik a helyi fájllal, de szintén nem működik

 this.photoViewer.show('https://images.app.goo.gl/cW8jBeX33H9GKAon9.jpg')

A végső célom egy helyi fájl használata.

PS: Természetesen telepítettem

ionic cordova plugin add com-sarriaroman-photoviewer
npm install @ionic-native/photo-viewer

Köszönöm a támogatást


  • Cordovát vagy kondenzátort használsz? 08.06.2020

Válaszok:


1

Bár ez nem 100%-ig garantált megoldás, remélem, a helyes irányba tereli el.

Pontosan ugyanez a problémám volt, és valamilyen oknál fogva magától megoldódott anélkül, hogy ténylegesen módosítottam volna a kódomat.

Egy kis kontextus:

Van egy hatalmas projektem, amely sok natív Cordova beépülő modult használ, ezért ha új beépülő modult akarok hozzáadni, először mindig egy üres projektben tesztelem, hogy elkerüljem a nagy beépülést. Ezért létrehoztam egy új üres projektet, és teszteltem a Native PhotoViewert. Az Android emulátoron a várt módon működött.

Aztán áttértem az alapértelmezett nagy projektemre, és pontosan ugyanazokat a lépéseket követtem, de semmi sem történt. Pontosan ugyanúgy viselkedtem, mint a tied. Futtattam a ionic cordova run android -l -c programot, és nem működött. Tehát az egyetlen dolog, amit tettem, az volt, hogy ctrl + c (hogy megszakítsam a folyamatot), majd végrehajtottam a ionic cordova run android -l -c-t, és a probléma varázsütésre eltűnt.

Az ilyen problémák megoldására szolgáló lépések:

Bár nem sikerült megértenem, hol a probléma, ilyen vagy hasonló problémák esetén a következő lépéseket javaslom a hibaelhárításhoz:

  1. Állítsa le a folyamatot, és futtassa újra
  2. Nyissa meg az Android-eszközt vagy az Android-emulátort (ahol teszteli az alkalmazást), távolítsa el manuálisan az alkalmazást, majd futtassa újra, hogy ott újra befusson (néha a tiszta telepítés megoldhatja a problémákat)
  3. Észrevettem, hogy néha egy plugin nem run módban, hanem generált debug APK-ban vagy signed APK-ban működik. (Érdemes mindkettőt kipróbálni)
  4. Előfordulhat, hogy egy beépülő modul nem működik a -l, -livereload jelzővel. Érdemes tehát ezt anélkül is megtenni, hogy ezek egyike sem lenne.
  5. Ellenőrizze, hogy az Angular, a bővítmények és az Ionic legújabb verziójával rendelkezik-e. Az Ön esetében (ez egy régi kérdés, így valószínűleg már megtalálta a megoldást), de ha még nem frissítette az Ionicot, akkor azt javaslom, hogy frissítsen a legújabb Ionic CLI-re és Ionic Framework-re.
  6. Végül az utolsó hibaelhárítási út egy teljesen üres projekt létrehozása (miközben természetesen mindent frissítünk a legújabb stabil kiadásokra), majd ott teszteljük a bővítményt. Ha a beépülő modul működik, helyezze egymás mellé a két projekt konfigurációját, és próbálja látni a különbségeket. Ez a módszer segített abban, hogy ráébredjek, hogy egy hasonló probléma miatt frissíteni kell az Angulart a 9-es verzióra, hogy működjön. (Természetesen a megfelelő könyvtárakat is frissíteni kellett, hogy megfeleljenek az Angular 9 verziónak)

Remélem, hogy ez a helyes hibaelhárítási útra tereli Önt vagy bárki mást, aki hasonló problémával küzd. Sok szerencsét!

08.06.2020
Új anyagok

A rádiógomb ellenőrzött eseményének használata a jQueryben
Ebben a cikkben látni fogjuk, hogyan kell dolgozni a jquery választógombbal ellenőrzött eseményeivel. A választógombok HTML gombok, amelyek segítenek kiválasztani egyetlen értéket egy csoportból...

Körkörös függőségek megoldása terraformban adatforrásokkal – lépésről lépésre
Mi az a körkörös függőségek Dolgozzunk egy egyszerű eseten, amikor az SQS-sor és az S3-vödör közötti körkörös függőség problémája van egy egymástól függő címkeérték miatt. provider..

Miért érdemes elkezdeni a kódolást 2023-ban?
01100011 01101111 01100100 01100101 — beep boop beep boop Világunk folyamatosan fejlődik a technológia körül, és naponta fejlesztenek új technológiákat a valós problémák megoldására. Amint..

🎙 Random Noise #2  – Örökbefogadás és hit
az analitika íratlan világának gondozása Szeretné, hogy ezek a frissítések a postaládájába kerüljenek? Iratkozzon fel itt . "Ha önvezető autókat gyártanak, akkor mi miért ne..

A legrosszabb politika és prediktív modellek májátültetésre jelöltek számára az Egyesült Államokban
A máj (vagy óangolul lifer) az emberi test legnehezebb belső szervére utal, amely csendesen működik a nap 24 órájában. Mit csinál a máj? 500 feladatot hajt végre a szervezet egészségének..

5 webhely, amely 2022-ben fejleszti front-end fejlesztői készségeit
Frontendmentor.io A tényleges projektek létrehozásával a Frontendmentor.io segítséget nyújt a front-end kódolási képességeinek fejlesztésében. A kódolást azután kezdheti meg, hogy..

Mikor kell használni a Type-t az interfészhez képest a TypeScriptben?
A TypeScript a JavaScript gépelt szuperkészlete, amely statikus gépelést ad a nyelvhez. Ez megkönnyíti a robusztus és karbantartható kód írását azáltal, hogy a hibákat a fordítási időben..