「Xamarin.Mac/カスタムURLスキームを利用する」の版間の差分

imported>Administrator
編集の要約なし
 
(他の1人の利用者による、間の5版が非表示)
1行目: 1行目:
[[Xamarin.Ma]]cで[[カスタムURLスキーム]]を使いたい。
[[Xamarin.Mac]][[カスタムURLスキーム]]を使いたい。
URLを叩くとアプリが起動するアレである。
[[Xamarin.iOS]]とは微妙に実装方法が異なる。


== 実装 ==
== 実装 ==
=== カスタムURLスキームを有効にする ===
以下でカスタムURLスキームが利用可能になる。
以下でカスタムURLスキームが利用可能になる。
# Xamarin Studioでプロジェクト内の「Info.plist」を開く
# [[Xamarin Studio]]でプロジェクト内の「Info.plist」を開く
# 下部の「Advanced」タブを開く
# 下部の「Advanced」タブを開く
# URL Typesの「Add URL Type」ボタンを押す
# URL Typesの「Add URL Type」ボタンを押す
#: まれにボタンを押しても何も起きない場合がある。その際はInfo.plistを閉じて再度開くと追加されている。
# 「Identifier」は何でもよい。アプリのIdentifierでも入れておく。
# 「Identifier」は何でもよい。アプリのIdentifierでも入れておく。
# 「URL Schems」にURLスキーム名を入れる(例:monobook)
# 「URL Schems」にURLスキーム名を入れる(例:monobook)


次にURLスキームが叩かれた際に呼ばれるメソッドの登録と実装をする。
=== カスタムURLスキームで呼ばれるメソッドを作る ===
次にカスタムURLスキームが叩かれた際に呼ばれるメソッドの登録と実装をする。
<source lang="csharp">
<source lang="csharp">
using System;
using System;
31行目: 36行目:
         {
         {
             // URLスキームで呼ばれるメソッドを指定する。
             // URLスキームで呼ばれるメソッドを指定する。
            // Export("handleGetURLEvent:withReplyEvent:")属性が付いたメソッドが呼ばれる。
             var appleEventManager = NSAppleEventManager.SharedAppleEventManager;
             var appleEventManager = NSAppleEventManager.SharedAppleEventManager;
             appleEventManager.SetEventHandler(this
             appleEventManager.SetEventHandler(this
58行目: 64行目:
                                 ;
                                 ;
                                    
                                    
            // ブレークポイント挿入用
             Console.WriteLine(parameters);
             Console.WriteLine(parameters);
         }
         }


         /// <summary>
         /// <summary>
         /// Xamarin.Macに定数らしきものが見当たらなかったので作った
        /// NSAppleEventDescriptorのParamDescriptorForKeywordメソッドに指定する定数。
         /// Xamarin.Macに定数らしきものが見当たらなかったのでxcode眺めつつ作った。
         /// </summary>
         /// </summary>
         public static class AEKeyword
         public static class AEKeyword
88行目: 96行目:
</source>
</source>


ターミナルでopenを叩けば簡単に[[デバッグ]]できる。openの引数(URLスキーム)にアンパサンド(&)を含む場合はダブルクォーテーション(")で囲むこと。
=== デバッグ ===
ターミナルでopenコマンドを叩けば簡単に[[デバッグ]]できる。openの引数(URLスキーム)にアンパサンド(&)を含む場合はダブルクォーテーション(")で囲むこと。
  open "monobook://"
  open "monobook://"
  open "monobook://inbox"
  open "monobook://inbox"
95行目: 104行目:


== 関連項目 ==
== 関連項目 ==
* [[Xamarin.iOS/カスタムURLスキームを利用する]]


== 参考文献 ==
== 参考文献 ==