— カスタムURLスキームを設定する
Usage
KARTE SDKでは、下記の各種機能に対応するためにカスタムURLスキームの設定を必要とします。
- Native機能呼び出し
- ビジュアルトラッキング
- サイト、アプリを閲覧している自分自身を探す
- アプリで確認 の機能を使ったアクションのプレビュー
ここでは、カスタムURLスキームの設定方法について記載します。
カスタムURLスキームを設定する
任意のエディタで Info.plist
を開き、下記設定を追記します。
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>krt-$(APIキー)</string>
</array>
</dict>
</array>
なお $(APIキー)
の部分には、KARTEプロジェクト毎に用意されているAPIキーを指定します。
APIキーの確認方法
APIキーは管理画面から取得可能です。
詳細については、こちらをご覧ください。
間違いやすい点
SDKの初期化に利用するアプリケーションキーとAPIキーは異なるものです。
お間違えないようご注意ください。
カスタムURLスキームハンドラを追加する
KARTEで独自に定義したURLスキームを処理するために、application(_:open:options:)
メソッド内にハンドラを追加します。
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
return KarteApp.application(app, open: url)
}
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
return [KRTApp application:app openURL:url];
}
なお iOS13 から利用可能な UISceneDelegate
を実装している場合は、scene(_:willConnectTo:options:)
および scene(_:openURLContexts:)
メソッド内にハンドラを追加します。
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
if let context = connectionOptions.urlContexts.first {
KarteApp.application(app, open: context.url)
}
}
func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) {
if let context = URLContexts.first {
KarteApp.application(app, open: context.url)
}
}
- (void)scene:(UIScene *)scene willConnectToSession:(UISceneSession *)session options:(UISceneConnectionOptions *)connectionOptions {
UIOpenURLContext *URLContext = connectionOptions.URLContexts.anyObject;
if (URLContext) {
[KRTApp application:[UIApplication sharedApplication] openURL:URLContext.URL];
}
}
- (void)scene:(UIScene *)scene openURLContexts:(NSSet<UIOpenURLContext *> *)URLContexts {
UIOpenURLContext *URLContext = URLContexts.anyObject;
if (URLContext) {
[KRTApp application:[UIApplication sharedApplication] openURL:URLContext.URL];
}
}
application(_:open:options:)
メソッドの戻り値についてKARTE SDK で処理可能なカスタムURLスキームが渡された場合は戻り値として
true
を返し、反対に処理できないカスタムURLスキームが渡された場合はfalse
を返します。
Updated 8 months ago