딥링크 지원
딥링크는 사용자의 휴대폰에서 앱을 열어 앱의 기본 위젯이 아닌 특정 페이지나 사용자 경험으로 바로 연결되는 링크입니다. 딥링크는 일반적으로 휴대폰에 이미 앱이 설치되어 있지만 한동안 앱을 사용하지 않은 사용자를 대상으로 하는 리타겟팅 캠페인에 사용됩니다. Singular는 Singular 링크를 통해 딥링크를 지원합니다.
Singular 링크 활성화하기
iOS와 Android에서 Singular 링크를 활성화하려면 Singular 링크 전제 조건을 참조하세요 .
Android 지원의 경우 프로젝트의 MainActivity.java 파일에 다음 코드를 추가합니다:
import com.singular.flutter_sdk.SingularBridge;
import android.content.Intent;
@Override
protected void onNewIntent(@NonNull Intent intent) {
super.onNewIntent(intent);
SingularBridge.onNewIntent(intent);
}
import com.singular.flutter_sdk.SingularBridge;
import android.content.Intent;
override fun onNewIntent(intent: Intent) {
super.onNewIntent(intent)
SingularBridge.onNewIntent(intent);
}
iOS 지원의 경우 프로젝트의 AppDelegate.m에 다음을 추가합니다:
// Top of AppDelegate.m
#import "SingularAppDelegate.h"
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[GeneratedPluginRegistrant registerWithRegistry:self];
[SingularAppDelegate shared].launchOptions = launchOptions;
return [super application:application
didFinishLaunchingWithOptions:launchOptions];
}
- (BOOL)application:(UIApplication *)application
continueUserActivity:(NSUserActivity *)userActivity
restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>>
*restorableObjects))restorationHandler {
[[SingularAppDelegate shared] continueUserActivity:userActivity
restorationHandler:restorationHandler];
return [super application:application continueUserActivity:userActivity
restorationHandler:restorationHandler ];
}
- (BOOL)application:(UIApplication *)app
openURL:(NSURL *)url
options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
[[SingularAppDelegate shared] handleOpenUrl:url options:options];
return [super application:app openURL:url options: options];
}
import singular_flutter_sdk
override func application(_ application: UIApplication,
didFinishLaunchingWithOptions
launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
GeneratedPluginRegistrant.register(with: self) if
let singularAppDelegate = SingularAppDelegate.shared() {
singularAppDelegate.launchOptions = launchOptions
}
return super.application(application, didFinishLaunchingWithOptions:launchOptions)
}
override func application(_ application: UIApplication,
continue userActivity:NSUserActivity,
restorationHandler: @escaping ([UIUserActivityRestoring]?)-> Void) -> Bool {
if let singularAppDelegate = SingularAppDelegate.shared() {
singularAppDelegate.continueUserActivity(userActivity, restorationHandler:nil)
}
return super.application(application, continue:userActivity,
restorationHandler: restorationHandler);
}
override func application(_ app: UIApplication,
open url: URL, options:[UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
if let singularAppDelegate = SingularAppDelegate.shared() {
singularAppDelegate.handleOpen(url, options: options)
}
return super.application(app, open: url, options: options);
}
Singular 링크 처리
Singular의 핸들러 메커니즘을 사용하여 앱이 열리게 된 추적 링크의 세부 정보를 읽습니다.
예를 들어
SingularConfig config = new SingularConfig('<SDK KEY>', '<SDK SECRET>');
config.singularLinksHandler = (SingularLinkParams params) {
String deeplink = params.deeplink;
String passthrough = params.passthrough;
bool isDeferred = params.isDeferred;
// Add your code here to handle the deep link
};
Singular.init(config);