Xamarin

【Xamarin】クリップボードの監視方法

Xamarinでクリップボードの監視をする場合、
Java.Lang.Objectを継承し、ClipboardManager.IOnPrimaryClipChangedListenerを実装します。

アプリケーション単位で監視したい場合は、App.xaml.csのOnStart()で変更イベントをハンドルさせます。


サンプルソース

using Android.Content;

using Xamarin.Forms;

namespace App1
{
    public partial class App : Application
    {
        public App ()
        {
            InitializeComponent();

            MainPage = new App1.MainPage();
        }

        static bool bHasClipChangedListener = false;
        ClipboardManager ClipBoardManager = (ClipboardManager)Forms.Context.GetSystemService(Context.ClipboardService);

        private void RegPrimaryClipChanged()
        {
            if (!bHasClipChangedListener)
            {
                ClipBoardManager.AddPrimaryClipChangedListener(new OnPrimaryClipChangedListener());
                bHasClipChangedListener = true;
            }
        }

        protected override void OnStart ()
        {
            //開始時にハンドルする
            RegPrimaryClipChanged();
        }

    }

    public class OnPrimaryClipChangedListener : Java.Lang.Object, ClipboardManager.IOnPrimaryClipChangedListener
    {
        public void OnPrimaryClipChanged()
        {
            //クリップボードが変更された場合の処理
        }
    }
}

あとAndroid、iOSで共通の処理を作りたい場合は、DependencyServiceを使用して呼び出せば共通の動作を作成できます。

おしまい。


 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です