筛选项

Flutter SDK Full Reference

All the methods made available by Branch for your Flutter app.

initSession

方法描述
Stream<Map<dynamic, dynamic>> initSession()Initiates a session with the Branch API through a listener.

用法示例

streamSubscription = FlutterBranchSdk.initSession().listen((data) {
  print('listenDynamicLinks - DeepLink Data: $data');
  controllerData.sink.add((data.toString()));
  if (data.containsKey('+clicked_branch_link') &&
      data['+clicked_branch_link'] == true) {
    print(
      '------------------------------------Link clicked----------------------------------------------');
    print('Custom string: ${data['custom_string']}');
    print('Custom number: ${data['custom_number']}');
    print('Custom bool: ${data['custom_bool']}');
    print('Custom list number: ${data['custom_list_number']}');
    print(
      '------------------------------------------------------------------------------------------------');
    showSnackBar(
      context: context,
      message: 'Link clicked: Custom string - ${data['custom_string']}',
      duration: 10);
  }
}, onError: (error) {
  PlatformException platformException = error as PlatformException;
  print(
    'InitSession error: ${platformException.code} - ${platformException.message}');
  controllerInitSession.add(
    'InitSession error: ${platformException.code} - ${platformException.message}');
});

validateSDKIntegration

方法描述

void validateSDKIntegration()

Use the SDK integration validator to check that you've added the Branch SDK and handle deep links correctly when you first integrate Branch into your app. Validates the following:

  • Branch Keys
  • 包名
  • URI Schemes
  • Android App Link
  • Universal Links(通用链接)
  • Link Domains

Example Usage:

FlutterBranchSdk.validateSDKIntegration();

setRequestMetadata

方法描述
void setRequestMetadata(String key, String value)Sets specific key/value pairs to all requests. This is required for integrating with specific partners like Adobe Analytics, Amplitude, etc. Partner keys can be found in the partner-specific guides.
Argument类型描述
keyStringThe partner key. Ex. $marketing_cloud_visitor_id
valueStringThe value of the partner key

用法示例

FlutterBranchSdk.setRequestMetadata(requestMetadataKey, requestMetadataValue);

setIdentity

方法描述
void setIdentity(String userId)Sets the identity of a user (ID, UUID, etc) for events, deep links, and referrals. Use this method when the user logs into their account in your app.See PII Best Practices for details.
Argument类型描述
userIdStringThe unique ID of the user

用法示例

FlutterBranchSdk.setIdentity('user1234567890');

isUserIdentified

方法描述
Future<bool> isUserIdentified()Indicates whether or not this user has a custom identity specified for them. Note that this is independent of installs.If you call the setIdentity method, this device will have that identity associated with this user until the logout method is called.This includes persisting through uninstalls, as device ID is tracked.

用法示例

bool isUserIdentified = await FlutterBranchSdk.isUserIdentified();

logout

方法描述
void logout()Clears the identity set from the setIdentity() method. This method should be called if you know that the user is explicitly logging out or if a different person is about to use the app.

用法示例

FlutterBranchSdk.logout();

handleDeepLink

方法描述
void handleDeepLink(String url)Ends the current deep link session and starts a new session with the provided URL.

To handle push notifications, call this method inside of the push notification callback.
Argument类型描述
urlStringThe URL of the deep link for the new session.

用法示例

FlutterBranchSdk.handleDeepLink('myapp://open?link_click_id=12345');

getLatestReferringParams

方法描述
Future<Map<dynamic, dynamic>> getLatestReferringParams()Returns the last parameters associated with the link that referred the user to the current app session.

用法示例

Map<dynamic, dynamic> params = await FlutterBranchSdk.getLatestReferringParams();

getFirstReferringParams

方法描述
Future<Map<dynamic, dynamic>> getFirstReferringParams()Returns the first parameters associated with the link that referred the user. Consider this as the parameters used to retrieve the details from the user's first app session.

用法示例

Map<dynamic, dynamic> params = await FlutterBranchSdk.getFirstReferringParams();

disableTracking

方法描述
void disableTracking(bool value)void disableTracking(bool value)If you need to comply with a user's request to not be tracked for GDPR purposes, or otherwise determine that a user should not be tracked, utilize this method to prevent Branch from sending network requests. This setting can also be enabled across all users for a particular link or across your Branch Links.
Argument类型描述
valueBooleanIf set to truedisableTracking is enabled.
If set to falsedisableTracking is disabled.

用法示例

FlutterBranchSdk.disableTracking(true);

getShortUrl

Argument类型描述
buoBranchUniversalObjectThe Universal Object used to define content within your app.BUO Best Practices
linkPropertiesBranchLinkPropertiesThe analytics properties associated with the link you are about to generate.

用法示例

BranchUniversalObject buo = BranchUniversalObject(
  canonicalIdentifier: 'flutter/branch',
  //canonicalUrl: '',
  title: 'Flutter Branch Plugin',
  imageUrl: 'https://flutter.dev/assets/flutter-lockup-4cb0ee072ab312e59784d9fbf4fb7ad42688a7fdaea1270ccf6bbf4f34b7e03f.svg',
  contentDescription: 'Flutter Branch Description',
  keywords: ['Plugin', 'Branch', 'Flutter'],
  publiclyIndex: true,
  locallyIndex: true,
  contentMetadata: BranchContentMetaData()..addCustomMetadata('custom_string', 'abc')
  ..addCustomMetadata('custom_number', 12345)
  ..addCustomMetadata('custom_bool', true)
  ..addCustomMetadata('custom_list_number', [1,2,3,4,5 ])
  ..addCustomMetadata('custom_list_string', ['a', 'b', 'c']),
);

BranchLinkProperties lp = BranchLinkProperties(
  //alias: 'flutterplugin', //define link url,
  channel: 'facebook',
  feature: 'sharing',
  stage: 'new share',
  tags: ['one', 'two', 'three']
);
lp.addControlParam('url', 'http://www.google.com');
lp.addControlParam('url2', 'http://flutter.dev');

BranchResponse response =
  await FlutterBranchSdk.getShortUrl(buo: buo, linkProperties: lp);
if (response.success) {
  print('Link generated: ${response.result}');
} else {
  print('Error : ${response.errorCode} - ${response.errorMessage}');
}

showShareSheet

Argument类型描述
buoBranchUniversalObjectThe Universal Object used to define content within your app.BUO Best Practices
linkPropertiesBranchLinkPropertiesThe analytics properties associated with the link you are about to generate.
messageTextStringThe body of the message in your share sheet.
androidMessageTitleStringThe message title of the share sheet.
androidSharingTitleStringThe sharing title of the share sheet.

用法示例

BranchResponse response = await FlutterBranchSdk.showShareSheet(
  buo: buo,
  linkProperties: lp,
  messageText: 'My Share text',
  androidMessageTitle: 'My Message Title',
  androidSharingTitle: 'My Share with');

if (response.success) {
  print('showShareSheet Sucess');
} else {
  print('Error : ${response.errorCode} - ${response.errorMessage}');
}

getQRCode

Argument类型描述
primaryColor ColorColor name or Hex color value
backgroundColor ColorColor name or Hex color value of the background of the QR code itself.
margin Integer (Pixels)The number of pixels you want for the margin. Min 1px. Max 20px.
width Integer (Pixels)Output size of QR Code image. Min 300px. Max 2000px. (Only applicable to JPEG/PNG)
imageFormat BranchImageFormatJPEG, PNG
centerLogoUrlString (HTTP URL)URL to the image you want as a center logo e.g. https://raw.githubusercontent.com/RodrigoSMarques/flutter_branch_sdk/master/assets/branch_logo_qrcode.jpeg

用法示例

BranchResponse responseQrCodeImage = await FlutterBranchSdk.getQRCodeAsImage(
  buo: buo!,
  linkProperties: lp,
  qrCode: BranchQrCode(primaryColor: Colors.black, 
                       //primaryColor: const Color(0xff443a49), //Hex colors
                       centerLogoUrl: imageURL,
                       backgroundColor: Colors.white,
                       imageFormat: BranchImageFormat.PNG));

  if (response.success) {
      print('QrCode Success');
      showQrCode(this.context, responseQrCodeImage.result);
      /*
       Image(image: responseQrCodeImage.result,
             height: 250,
             width: 250,),
      */
  } else {
     print('Error : ${response.errorCode} - ${response.errorMessage}');

trackEvents

默认情况下,Branch SDK 会自动(不需额外设置)追踪点击,打开,安装,重新安装和展示。

Please refer to our Event Tracking Docs for more information and examples:

registerView

方法描述
void registerView({required BranchUniversalObject buo})Mark the content referred to by this object as viewed. This will increment the view count of the contents referred by this object.
Argument类型描述
buoBranchUniversalObjectThe Universal Object used to define content within your app.BUO Best Practices

用法示例

FlutterBranchSdk.registerView(buo: buo);

listOnSearch

方法描述

Future

For Android:

  • Publishes the Universal Object with Google App Indexing so that the contents will be available with Google Search

For iOS:

  • List items on Spotlight
Argument类型描述
buoBranchUniversalObjectThe Universal Object used to define content within your app.BUO Best Practices
linkPropertiesBranchLinkPropertiesThe analytics properties associated with the link you are about to generate.

用法示例

bool success = await FlutterBranchSdk.listOnSearch(buo: buo);
print(success);

removeFromSearch

方法描述

Future

For Android:

  • Remove the BUO from the local indexing if it is added to the local indexing already.
  • Remove the content from Google (Firebase) and other supported indexing services

For iOS:

  • Remove the BUO from Spotlight if privately indexed
Argument类型描述
buoBranchUniversalObjectThe Universal Object used to define content within your app.BUO Best Practices
linkPropertiesBranchLinkPropertiesThe analytics properties associated with the link you are about to generate.

用法示例

bool success = await FlutterBranchSdk.removeFromSearch(buo: buo);
print('Remove sucess: $success');

setIOSSKAdNetworkMaxTime

方法描述
void setIOSSKAdNetworkMaxTime(int hours)Sets the time window for SKAdNetwork callout in hours. iOS ONLY.By default, Branch limits calls to SKAdNetwork to within 72 hours after first install.
Argument类型描述
hoursintTime window in hours.

用法示例

FlutterBranchSdk.setIOSSKAdNetworkMaxTime(24);


requestTrackingAuthorization

方法描述
Future<AppTrackingStatus> requestTrackingAuthorization()Requests AppTracking Authorization and returns AppTrackingStatus. iOS ONLY

用法示例

AppTrackingStatus status = await FlutterBranchSdk.requestTrackingAuthorization();
print(status);

getTrackingAuthorizationStatus

方法描述
Future<AppTrackingStatus> getTrackingAuthorizationStatus()Returns AppTrackingStatus. iOS ONLY

用法示例

AppTrackingStatus status = await FlutterBranchSdk.getTrackingAuthorizationStatus();
print(status);

getAdvertisingIdentifier

方法描述
Future<String> getAdvertisingIdentifier()Returns the advertising identifier. iOS ONLY

用法示例

String status = await FlutterBranchSdk.getAdvertisingIdentifier();
print(status);