UnityでUrlSchemeからアプリを開いたときのurlを取得できるようにしてみた。
気になったのでやってみました。
というより、いい感じのライブラリがあるだろうと思ってたんですよ。
幾つかのアプリがいい感じにUrlSchemeでキャンペーンやってたりするので!!
でもなかった…
いやOS別ならあるんですよ。
iOS
Unity/iOS で起動 URL を取得する (Unity 2018.3)
https://github.com/Bugfire/Unity_OnOpenURL.git
Android(こちらは古い)
[Unity][Android] カスタムURLスキームを使ってアプリを起動する(Unity Android編)
の二つの記事がそれにあたります。
両方まとめてかんたんにしてよーー!!!
っていう怠惰メンタルがこうふつふつとわいてきてですね・・・!!!
簡単に両対応しました!!!
リポジトリはこちら
https://github.com/Marimoiro/urlschemereceiver.git
導入方法
こちらのunitypackageを突っ込んでください。
ios
ProjectSettingsからiOSのurlschemeを設定しておしまい。
Android
AndroidManifest.xmlの<application>タグの中に以下を追記してください。
<!-- url receiver activity -->
<activity android:name="urlreceiver.IntentReceiveActivity">
<intent-filter>
<data android:scheme="{Your Url Scheme}" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<action android:name="android.intent.action.VIEW" />
</intent-filter>
</activity>
使い方
UrlSchemeReceiverクラスが全てです。
public static class UrlSchemeReceiver
{
/// <summary>
/// url schemeから開かれていればtrueさもなくばfalse
/// </summary>
public static bool OpenFromUrlScheme { get; private set; }
/// <summary>
/// 開かれたurlscheme
/// e.g. urlscheme://example
///
/// もしurlscheme以外からアプリが起動されていれば null
/// </summary>
public static string OpenUrl { get; private set; }
/// <summary>
/// 開かれたurlschemeの//以降の部分
/// e.g. example
///
/// もしurlscheme以外からアプリが起動されていれば null
/// </summary>
public static string SpecificPart { get; private set; }
}
ライセンスについて
一応ないとまずいかなと思って2条項BSDつけていますが、(個人の見解ですが)このプログラムは著作権が発生していないのでは?と思います。
詳しい人教えてください。
もし使うことがあればStarかLGTMつけてほしいなほしいな!!