支持深度链接

文件

支持深度链接

深度链接是在用户手机上打开应用程序,并将用户直接发送到特定页面或用户体验的链接,而不仅仅是应用程序的主窗口。深层链接通常用于重定向营销活动,目标用户是手机上已经安装了应用程序但可能有一段时间没有使用的用户。Singular 支持通过 Singular Links 进行深度链接。

启用奇异链接

要在 iOS 和 Android 中启用 Singular Links,请参阅Singular Links Prerequisites。

支持 Android,请在项目的MainActivity.java文件中添加以下代码:

Java Kotlin
import com.singular.flutter_sdk.SingularBridge;
import android.content.Intent;

@Override
protected void onNewIntent(@NonNull Intent intent) {
  super.onNewIntent(intent);
  SingularBridge.onNewIntent(intent);
}

对于iOS 支持,在项目的 AppDelegate.m 中添加以下内容:

Objective-C Swift
// 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];
}

处理 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);