6

StackOverFlow および Ionic ドキュメントを含む他のサイトの関連記事をすべて読んだ後、これを機能させることができません。私は同じものを複製しようとしたので、現在私は持っています:

app.module.ts

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

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

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

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');
} 
}

そしてhome.page.tsに

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

私が達成したいのは、画像を表示し、クリックすると、Ionic が画像をパン、ズーム、共有する機能を備えた全画面表示で言及することです。しかし、エラーが画像にないことを確認するために、同じ機能を持つボタンを同時に使用しようとしています。

中にも

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

ローカルファイルで機能するかどうかわからないので、URLでも試していますが、機能していません

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

私の最終的な目標は、ローカル ファイルを使用することです。

PS: もちろんインストールしました

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

サポートありがとうございます

4

1 に答える 1

0

これは 100% 保証された解決策ではありませんが、正しい方向に導かれることを願っています。

私はまったく同じ問題を抱えていましたが、何らかの理由で、コードを実際に変更することなく、自然に解決しました。

ちょっとした文脈:

多くのネイティブ Cordova プラグインを使用する巨大なプロジェクトがあるため、新しいプラグインを追加するときはいつでも、最初に空のプロジェクトでテストして、大きなプラグインを台無しにしないようにしています。そこで、新しい空のプロジェクトを作成し、Native PhotoViewer をテストしました。期待どおり、Android エミュレーターで動作していました。

次に、デフォルトの大きなプロジェクトに移動し、まったく同じ手順を実行しましたが、何も起こりませんでした. 私はあなたとまったく同じ振る舞いをしていました。私は実行ionic cordova run android -l -cしていましたが、機能していませんでした。したがって、私がした唯一のことはctrl + c(プロセスをキャンセルすること)、実行することionic cordova run android -l -cであり、問​​題は魔法のように消えました.

このような問題を解決できる手順:

問題がどこにあるかを理解できていませんが、そのような場合や同様の問題が発生した場合は、次の手順でトラブルシューティングすることをお勧めします。

  1. プロセスを停止して再実行する
  2. Android デバイスまたは Android エミュレーター (アプリをテストしている場所) に移動し、アプリを手動でアンインストールしてから、そこで実行して再度実行します (クリーン デプロイで問題が解決する場合があります)。
  3. runプラグインがモードでは機能せず、生成されたdebugAPK またはAPK で機能する場合があることに気付きましたsigned。(両方試してみる価値あり)
  4. -lプラグインが,-livereloadフラグで動作しない場合があります。したがって、これらのどちらも持たずにそうすることも価値があります。
  5. Angular、プラグイン、および Ionic の最新バージョンを使用しているかどうかを確認します。あなたの場合(これは古い質問なので、おそらくすでに解決策を見つけているでしょう)、まだIonicを更新していない場合は、最新のIonic CLIとIonic Frameworkに更新することをお勧めします
  6. 最後に、最後のトラブルシューティング パスは、完全に空のプロジェクトを作成し (もちろん、すべてが最新の安定版リリースに更新されます)、そこでプラグインをテストすることです。プラグインが機能する場合は、2 つのプロジェクトの構成を並べて配置し、違いを確認します。この方法は、Angular を機能させるためにバージョン 9 にアップグレードする必要がある同様の問題に気付くのに役立ちました。(もちろん、Angular 9 のバージョンに合わせて、対応するライブラリもアップグレードする必要がありました)

このガイドが、あなた、または同様の問題を抱えている他の誰かを正しいトラブルシューティング パスに導くことを願っています。幸運を!

于 2020-06-08T17:07:04.563 に答える