メインメニューを開く

差分

Xamarin.Mac/カスタムURLスキームを利用する

1,199 バイト追加, 2017年7月7日 (金) 06:17
[[Xamarin.Mac]]で[[カスタムURLスキーム]]を使いたい。
URLを叩くとアプリが起動するアレである。
[[Xamarin.iOS]]とは微妙に実装方法が異なる。
 
== 実装 ==
=== カスタムURLスキームを有効にする ===
以下でカスタムURLスキームが利用可能になる。
# [[Xamarin Studioでプロジェクト内の「InfoStudio]]でプロジェクト内の「Info.plist」を開く
# 下部の「Advanced」タブを開く
# URL Typesの「Add URL Type」ボタンを押す
#: まれにボタンを押しても何も起きない場合がある。その際はInfo.plistを閉じて再度開くと追加されている。
# 「Identifier」は何でもよい。アプリのIdentifierでも入れておく。
# 「URL Schems」にURLスキーム名を入れるSchems」にURLスキーム名を入れる(例:monobook)
次にURLスキームが叩かれた際に呼ばれるメソッドの登録と実装をする。=== カスタムURLスキームで呼ばれるメソッドを作る ===次にカスタムURLスキームが叩かれた際に呼ばれるメソッドの登録と実装をする。
<source lang="csharp">
using System;
{
// URLスキームで呼ばれるメソッドを指定する。
// Export("handleGetURLEvent:withReplyEvent:")属性が付いたメソッドが呼ばれる。
var appleEventManager = NSAppleEventManager.SharedAppleEventManager;
appleEventManager.SetEventHandler(this
;
// ブレークポイント挿入用
Console.WriteLine(parameters);
}
/// <summary>
/// NSAppleEventDescriptorのParamDescriptorForKeywordメソッドに指定する定数。 /// Xamarin.Macに定数らしきものが見当たらなかったので作ったMacに定数らしきものが見当たらなかったのでxcode眺めつつ作った。
/// </summary>
public static class AEKeyword
}
</source>
 
=== デバッグ ===
ターミナルでopenコマンドを叩けば簡単に[[デバッグ]]できる。openの引数(URLスキーム)にアンパサンド(&)を含む場合はダブルクォーテーション(")で囲むこと。
open "monobook://"
open "monobook://inbox"
open "monobook://inbox?sort=date"
open "monobook://inbox?sort=date&filter=abc"
== 関連項目 ==
* [[Xamarin.iOS/カスタムURLスキームを利用する]]
== 参考文献 ==
匿名利用者