cdvphotolibrary:在IONIC 4上显示

时间:2019-08-14 06:42:36

标签: ionic4

是否可以在Ionic 4中显示cdvphotolibrary://?

我已经尝试了大部分可用的东西来显示thumbanil:

<allow-intent href="cdvphotolibrary:*" />
<allow-navigation href="cdvphotolibrary://*" />
<meta http-equiv="Content-Security-Policy" content="cdvphotolibrary:">

想法是显示这样的内容,实际上是照相馆返回的缩略图:

cdvphotolibrary://thumbnail?photoId=43%3B%2Fstorage%2Femulated%2F0%2FDCIM%2FCamera%2F20190304_204426.jpg&width=512&height=384&quality=0.8

我正在使用https://www.npmjs.com/package/cordova-plugin-photo-library

谢谢

1 个答案:

答案 0 :(得分:1)

确定该错误代码已放弃了更多信息。

It seemscdvphotolibrary://协议被归类为file://协议,您不能在较新的Webview中使用它们。

但是,存在file://协议的解决方法:

哪个是

  

对于Cordova应用程序,Ionic Web View插件提供了用于转换文件URI的实用程序功能:window.Ionic.WebView.convertFileSrc()。还有一个对应的Ionic Native插件:@ ionic-native / ionic-webview。

似乎插件也提供了文件://网址are actually available

    this.photoLibrary
      .requestAuthorization()
      .then(() => {
        this.photoLibrary
          .getLibrary()
          .subscribe({
            next: library => {
              library.forEach(libraryItem => {
                let url: string;
                if (libraryItem.id.split(';').length > 0) {
                  url = 'file://' + libraryItem.id.split(';')[1];
                }
                // Get http://localhost url
                url = (window as any).Ionic.WebView.convertFileSrc(url)
              });
            },
            error: err => {
              console.log('could not get photos');
            },
            complete: () => {
              console.log('done getting photos');
              console.log(this.images);
              count = 0;
            },
          });
      })
      .catch(err => {
        console.log("permissions weren't granted");
      });

但是,似乎可能需要对Ionic进行一些其他调整-请查看该线程以查看进一步的讨论。