离子2社交分享

时间:2017-02-27 19:15:48

标签: cordova angular ionic2 screenshot socialshare

我想"分享用户统计信息"在我的Ionic 2应用程序中。首先,我做一个截图,然后我想与社交分享插件分享..

这是我的代码:

public shareStats(): void {

        // Take a screenshot and get temporary file URI
        Screenshot.URI(100)
            .then((img) => {

                this.platform.ready().then(() => {

                    let message: string = 'Message';
                    let subject: string = 'Stats';
                    let file = img;
                    let link = 'https://www.example.com';

                    SocialSharing.share(message, subject, file, link);
                });

            }, (err) => {

                let prompt = this.alertCtrl.create({
                    title: 'Fallo',
                    subTitle: err,
                    buttons: ['Aceptar']
                });

                prompt.present();
                console.log(err);
            });
    }

嗯,截图插件似乎工作正常,但我不知道在我添加社交共享代码后发生了什么。因为我的设备无法打开简单的共享选项窗口。

简而言之,我需要做截图并在社交网络上分享。但我不知道我做错了什么,因为我不能通过成为一个cordova插件来调试它,只能在移动设备上运行。

这让我觉得我作为参数发送了一些噪音:let file = img; 因为我不知道它包含什么或者这个img是什么类型的数据会返回Screenshot.URI,因为我无法使用移动设备调试它。

提前感谢!

伊凡。

1 个答案:

答案 0 :(得分:1)

我解决了它:

public shareStats(): void {

        this.platform.ready().then(() => {
            // Take a screenshot and get temporary file URI
            Screenshot.URI(100)
                .then((res) => {

                    var options = {
                        message: this.SHARE_OPTIONS_MESSAGE,
                        subject: '', // fi. for email
                        files: [res.URI], // an array of filenames either locally or remotely
                        url: this.SHARE_OPTIONS_URL,
                        chooserTitle: this.SHARE_OPTIONS_CHOOSER_TITLE // Android only
                    }

                    SocialSharing.shareWithOptions(options)
                        .then(() => {
                            this.showSuccessShareMsg();
                        })
                        .catch((err) => {
                            this.showErrorShareMsg(err);
                        });

                }, (err) => {

                });
        });

    }