Mac OS基本集成

配置 Branch

图像

安装框架

将Branch.framework作为嵌入式二进制文件添加到您的应用程序中。

您可以将框架拖放到您的应用中进行安装。

在Xcode中,在“项目导航器”中单击您的项目,在“目标”区域中选择您的应用程序,在
顶部选择' General '选项卡,然后向下滚动到' Embedded Binaries '部分。您可以将
Branch.framework捆绑包从Frameworks/macOS 项目目录拖到该区域中。

图像

配置 Info.plist

将您的应用方案添加到Info.plist文件中,以便macOS知道您的应用可以处理的方案。此
示例显示testbed-mac 作为应用方案。仅添加方案,而不添加:// 部分。

添加应用方案

在这里,您可以将xml片段复制到Info.plist中。右键点击您的Info.plist并将其作为源代码打开。您可以将此代码段粘贴到最后</dict> 标记之前。请记住将YOUR-APP-SCHEME-HERE 更改为您的应用程序的应用方案。

<key>CFBundleURLTypes</key>
	<array>
		<dict>
			<key>CFBundleTypeRole</key>
			<string>Editor</string>
			<key>CFBundleURLSchemes</key>
			<array>
				<string>YOUR-APP-SCHEME-HERE</string>
			</array>
		</dict>
	</array>

定义第一个方案

您的应用的URI方案必须是列表中定义的第一个方案(项目0)。

该科SDK将使用第一个URI方案从你的列表中没有以fbdbtwitterkit-pincom.googleusercontent.apps 。这些方案会被Branch忽略,因为其他应用程序套件通常将它们用于oauth和其他用途。

初始化 Branch

应用首次启动时启动分支。在您的应用程序委托中,以您的applicationWillFinishLaunching:
方法启动Branch:

#import <Branch/Branch.h>

// In your app delegate class file add this method to start the Branch SDK:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
    // Insert code here to initialize your application

    // Register for Branch URL notifications:
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(branchWillStartSession:) name:BranchWillStartSessionNotification object:nil];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(branchDidStartSession:) name:BranchDidStartSessionNotification object:nil];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(branchOpenedURLNotification:) name:BranchDidOpenURLWithSessionNotification object:nil];

    // Create a Branch configuration object with your key:
    BranchConfiguration *configuration = [[BranchConfiguration alloc] initWithKey:@"key_live_joQf7gfRz1vebNOoHPFGJhnhFCarsZg0"];

    // Start Branch:
    [[Branch sharedInstance] startWithConfiguration:configuration];
}

接下来,添加一个通知处理程序,以便您的应用程序可以处理深度链接接:

- (void) branchWillStartSession:(NSNotification*)notification {
    NSLog(@"branchWillStartSession: %@", notification.name);

    NSString *url = notification.userInfo[BranchURLKey] ?: @"";
    NSLog(@"URL: %@", url);
}

- (void) branchDidStartSession:(NSNotification*)notification {
    NSLog(@"branchDidStartSession: %@", notification.name);

    NSString *url = notification.userInfo[BranchURLKey] ?: @"";
    NSLog(@"URL: %@", url);

    BranchSession *session = notification.userInfo[BranchSessionKey];
    NSString *data = (session && session.data) ? session.data.description : @"";
}

- (void) branchOpenedURLNotification:(NSNotification*)notification {
    NSLog(@"branchOpenedURLNotification: %@", notification.name);

    NSString *url = notification.userInfo[BranchURLKey] ?: @"";
    NSLog(@"URL: %@", url);

    BranchSession *session = notification.userInfo[BranchSessionKey];

    // Do something with the link!
    // In this contrived example we'll load a view controller that plays the song that was in the link:
    SongViewController *viewController = [SongViewController loadController];
    viewController.songTitle = branchSession.linkContent.title;
    [viewController.window makeKeyAndOrderFront:self];
    [viewController playSong];
}

macOS Catalina支持通用链接。确保将通用链接传递到AppDelegate中的Branch:

- (BOOL)application:(NSApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<NSUserActivityRestoring>> * _Nonnull))restorationHandler {
    [[Branch sharedInstance] continueUserActivity:userActivity];
    return YES;
}

更新26 天前

Mac OS基本集成


建议的编辑仅限于API参考页

您只能建议对Markdown正文内容进行修改,而不能建议对API规范进行修改。