— カスタムURLスキームを設定する

Usage

KARTE SDKでは、SDKのNative機能呼び出しに対応するためにカスタムURLスキームの設定を推奨しております。

ここでは、カスタム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];
  }
}

Updated about a year ago

— カスタムURLスキームを設定する


Usage

Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.