简体   繁体   English

无法使用Ionic2 / 3 Social Share共享图像

[英]Unable to share image using Ionic2/3 Social Share

here i am firstly sharing a image using ionic social share for this what i did is i grabbed the image by using Canvas and and i am exporting the same image code to the share plugin. 在这里,我首先使用离子社交共享来共享图像,为此,我所做的就是使用Canvas抓取图像,并且将相同的图像代码导出到共享插件。 when i do that i am getting the below in my body i mean i am sending via email 当我这样做时,我的身体正处于下方,我的意思是我通过电子邮件发送

'data:image/png;base64,R0lGODlhDAAMALMBAP8AAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAUKAAEALAAAAAAMAAwAQAQZMMhJK7iY4p3nlZ8XgmNlnibXdVqolmhcRQA7'

below is my code : Home.html 下面是我的代码: Home.html

<canvas #myCanvas>

  <ion-card>
    <img [src]="image">

    <ion-card-content>
      <ion-card-title>
        Nine Inch Nails Live
      </ion-card-title>
      <p>
        The most popular industrial group ever, and largely
        responsible for bringing the music to a mass audience.
      </p>
    </ion-card-content>
  </ion-card>
  </canvas>

  <button ion-button (click)="getDat()"></button>

.ts code .ts代码

@ViewChild('myCanvas') myCanvas:ElementRef ;


  image:any = 'https://images.pexels.com/photos/6966/abstract-music-rock-bw.jpg?auto=compress&cs=tinysrgb&h=350';

  constructor(public navCtrl: NavController,public share:SocialSharing) {

  }

  getDat(){
    var canvas = this.myCanvas.nativeElement;
    var imageBase64Data = canvas.toDataURL("image/png");

    console.log(imageBase64Data)

    this.share.canShareViaEmail().then(() => {
      this.share.shareViaEmail(imageBase64Data,'IDCARD', ['trend@gmail.co']).then(() => {
        ;
      }).catch(() => {
       // Error!

      });

    }).catch(() => {
      // Sharing via email is not possible
    });



  }

so it possible to send image in the body 这样就可以在体内发送图像

You can use email composer to add attachments. 您可以使用电子邮件编辑器添加附件。 See the code below. 请参见下面的代码。

import { EmailComposer } from '@ionic-native/email-composer';

constructor(private emailComposer: EmailComposer) { }

...


this.emailComposer.isAvailable().then((available: boolean) =>{
 if(available) {
  //Now we know we can send
 }
});

let email = {
  to: 'max@mustermann.de',
  cc: 'erika@mustermann.de',
  bcc: ['john@doe.com', 'jane@doe.com'],
  attachments: [
    'file://img/logo.png',
    'res://icon.png',
    'base64:icon.png//iVBORw0KGgoAAAANSUhEUg...',
    'file://README.pdf'
 ],
  subject: 'Cordova Icons',
  body: 'How are you? Nice greetings from Leipzig',
  isHtml: true
 };

// Send a text message using default options
this.emailComposer.open(email);

} }

For more info check https://ionicframework.com/docs/native/email-composer/ 有关更多信息,请检查https://ionicframework.com/docs/native/email-composer/

Update 更新

You can use this for social share 您可以将其用于社交分享

socialsharing.shareViaEmail(
  'Message', // can contain HTML tags, but support on Android is rather limited:  http://stackoverflow.com/questions/15136480/how-to-send-html-content-with-image-through-android-default-email-client
  'Subject',
  ['to@person1.com', 'to@person2.com'], // TO: must be null or an array
  ['cc@person1.com'], // CC: must be null or an array
  null, // BCC: must be null or an array
  ['https://www.google.nl/images/srpr/logo4w.png','www/localimage.png'], // FILES: can be null, a string, or an array
  onSuccess, // called when sharing worked, but also when the user cancelled sharing via email. On iOS, the callbacks' boolean result parameter is true when sharing worked, false if cancelled. On Android, this parameter is always true so it can't be used). See section "Notes about the successCallback" below.
  onError // called when sh*t hits the fan
);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM