カスタム URL スキームまたはプロトコル (myapp:123 など) を MonoTouch に登録することはできますか? ユーザーが Web ページ、メール、またはカレンダーの説明でこのリンクをクリックすると、MonoTouch アプリが起動し、URL「パラメーター」、この場合は「123」を取得したいと考えています。
要するに、iPhone の Spotify アプリと同じ機能が必要で、その spotify:track:123123 を使用できますか?
カスタム URL スキームまたはプロトコル (myapp:123 など) を MonoTouch に登録することはできますか? ユーザーが Web ページ、メール、またはカレンダーの説明でこのリンクをクリックすると、MonoTouch アプリが起動し、URL「パラメーター」、この場合は「123」を取得したいと考えています。
要するに、iPhone の Spotify アプリと同じ機能が必要で、その spotify:track:123123 を使用できますか?
はい、これがあなたがする必要があることです。
dict タグ内のどこかに次の Info.Plist を追加します。
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key>
<string>com.companyname.com.receiver</string>
<key>CFBundleURLSchemes</key>
<array>
<string>myapp</string>
</array>
</dict>
</array>
次に、AppDelegate.cs でメソッドをオーバーライドしますHandleOpenURL
。
public override bool HandleOpenURL (UIApplication application, NSUrl url)
{
if (url == null) {
return false;
}
var uri = new Uri(url.ToString()); // I prefer working with the Uri class.
// Your logic here
return true;
}
はい、いくつかの MonoTouch アプリケーションでそれを実行しました。アプリへのログインに Facebook SDK を使用する場合は、実際に必要です。
一般に、通常の Objective-C アプリの場合と同じ手順に従います: http://developer.apple.com/library/ios/#DOCUMENTATION/iPhone/Conceptual/iPhoneOSProgrammingGuide/AdvancedAppTricks/AdvancedAppTricks.html (「通信他のアプリと」)
あなたAppDelegate
にはHandleOpenURL
オーバーライドする方法があります。それを超えて、変更する Info.plist の設定がいくつかあります。