XamarinのアプリからTwitterやFacebookとかを呼び出す機能つけたいなぁと思って調べてたのですが、Xamarin純正(?)のXamarin.SocialなるComponentがありました。
Xamarin.Social / Components / Xamarin
が、自分の環境だとNuGetでのインストールがうまくいかず、、、同じようなことに遭遇してるQAで以下の「Share Plugin」が勧められていました。
GitHub - jguertl/SharePlugin: Simple way to share a message or link on a social network in your Xamarin.Forms projects.
こちらはNuGetからインストールできた。ホッ。
なお、同じライブラリでDeprecatedになっているものもNuGetのリストには出てくるので注意です。(キャプチャ最上段のがDeprecatedと書いてある)
利用は簡単で、とりあえずXAMLにボタンを置いて
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="ShareSample.SharePage">
<Button x:Name="shareButton" Text="Share" />
</ContentPage>
ボタンイベントでCrossShare.Current.Shareメソッドを呼ぶだけ、という(^^;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Plugin.Share;
using Xamarin.Forms;
namespace ShareSample
{
public partial class SharePage : ContentPage
{
public SharePage()
{
InitializeComponent();
shareButton.Clicked += ShareButtonClick;
}
public void ShareButtonClick(object sender, EventArgs ea)
{
CrossShare.Current.Share("Xamarinからシェアしてみるテスト");
}
}
}
これで実行。ボタンがやる気なさすぎですが、とりあえず(^^;
エミュレータで実行してボタンを押すと
うーん(゜-゜)って感じですが
実機で試したら、おぉ、なんかそれっぽい!
試しにTwitterを選んでみると
おー。ちゃんとテキストが。で、こんな感じに。
ShareLinkメソッドを使うと
CrossShare.Current.ShareLink(
"http://46collection.sakamichi46.com/",
"坂道グループのTwitterランクWeb");
こんなコードでメールとか選ぶと
Title属性(引数の2つ目)はメールの表題などにはいるようです。シンプルで良さそう。