以前、React でSNSシェア機能を実装できるライブラリ「react-share」についてご紹介しましたが、Cordova のプラグインにも同じことができるものがあったのでご紹介。
「cordova-plugin-x-socialsharing」というライブラリです。
GitHub のページはこちらから。
GitHub – EddyVerbruggen/SocialSharing-PhoneGap-Plugin: 👨❤️💋👨 Cordova plugin to share text, a file (image/PDF/..), or a URL (or all three) via the native sharing widget
https://github.com/EddyVerbruggen/SocialSharing-PhoneGap-Plugin
プラグインのインストールは下記のコマンドで行います。
cordova plugin add cordova-plugin-x-socialsharing --save
インストールが完了したら、あとは任意のタイミングで下記のコードを実行すれば、シェアメニューが表示されます!
window.plugins.socialsharing.share('[シェアしたいメッセージ]');
なお、画像や URL を一緒にシェアする方法については、下記のようにすればOKです。
// メッセージ+URLをシェア window.plugins.socialsharing.share('[シェアしたいメッセージ]', null, null, '[シェアしたいURL]'); // メッセージ+画像をシェア window.plugins.socialsharing.share('[シェアしたいメッセージ]', null, '[シェアしたい画像URL]', null);
shere メソッドの使い方については、GitHub のページに記載されていますので、そちらもご参考にしてください。
また、シェアしたい SNS を指定する方法もあります。
下記のサンプルコードは、Twitter と Facebook のシェア機能を直接起動させる方法です。
// Twitter にシェア window.plugins.socialsharing.shareViaTwitter('[シェアしたいメッセージ]', null, '[シェアしたい画像URL]', null); // Facebook にシェア window.plugins.socialsharing.shareViaFacebookWithPasteMessageHint('[シェアしたいメッセージ]', null, '[シェアしたい画像URL]', null, '[Toastに表示したいメッセージ]', function() { console.log('share ok'); }, function(errormsg) { console.log(errormsg); });
なお、Facebook はシェアメッセージをプラグインを使って直接入力することがポリシー上できなくなってしまったので、シェア機能を起動する直前に JavaScript
でシェアしたいメッセージをクリップボードにコピーするという処理を追加した方が良いと思います。
もしくは、react-share
を使うのもおすすめです。
私は Twitter へのシェアはこのプラグインを使い、Facebook へのシェアは react-share
を使うようにしました。
以上、Cordova で SNS シェア機能を実装できるプラグイン「cordova-plugin-x-socialsharing」のご紹介でした。
ご参考になれば幸いです。