SDK 迁移指南 - Unreal SDK (v4)

您可以查看更新 Airbridge Unreal SDK 过程中需要注意的内容。建议查看当前版本至目标更新版本之间的所有更新详情。

从 v1.x 更新至 v4.0

如果您将 Airbridge Unreal SDK 更新至 v4.0,请查看以下内容。

SDK 安装及初始化

Airbridge 配置值的存储位置已从 [Project]>[Config]>[DefaultAirbridge.ini] 迁移至 [Project]>[Config]>[DefaultAirbridge.ini] 文件的 [/Script/AirbridgeEditor.AirbridgeSettings] 部分。

FAirbridgeUnreal::StartTracking 函数已被 FAirbridge::StartTracking 函数替代。

12
- FAirbridgeUnreal::StartTracking();
+ FAirbridge::StartTracking();

FAirbridgeUnreal::StopTracking 函数已被 FAirbridge::StopTracking 函数替代。

12
- FAirbridgeUnreal::StopTracking();
+ FAirbridge::StopTracking();

深度链接

FAirbridgeUnreal::SetDeeplinkCallback 函数已被 FAirbridge::SetOnDeeplinkReceived 函数替代。

1234567891011121314151617181920
- AExampleGameModeBase::AExampleGameModeBase()
- {
-   AirbridgeCallbacks = CreateDefaultSubobject<UAirbridgeCallbacks>(TEXT("AIRBRIDGE_CALLBACKS"));
- }

void AExampleGameModeBase::BeginPlay()
{
-    AirbridgeCallbacks->OnDeeplinkReceived.AddDynamic(this, &AExampleGameModeBase::OnDeeplinkReceived);
-    FAirbridgeUnreal::SetDeeplinkCallback();

+    FAirbridge::SetOnDeeplinkReceived([](const FString& Url)
+    {
+        // show proper content
+    });
}

- void AExampleGameModeBase::OnDeeplinkReceived(const FString& Url)
- {
-     // show proper content 
- }

应用内事件及用户信息

FAirbridgeUnreal::TrackEvent 函数已被 FAirbridge::TrackEvent 函数替代。

12345678910111213141516171819202122232425262728293031323334353637383940
- FAirbridgeUnreal::TrackEvent(
-    AirbridgeConstants::CATEGORY::ORDER_COMPLETED,
-    UAirbridgeEventOption::CreateObject()
-    ->SetAction("Tool")
-    ->SetLabel("Hammer")
-    ->SetValue(10.0)
-    ->SetSemanticAttributes(
-        UAirbridgeMap::CreateObject()
-        ->Set(AirbridgeConstants::ATTRIBUTES::CURRENCY, "USD")
-        ->Set(AirbridgeConstants::ATTRIBUTES::PRODUCTS, UAirbridgeList::CreateObject()
-            ->Add(UAirbridgeMap::CreateObject()
-                ->Set(AirbridgeConstants::PRODUCT::ID, "12345")
-                ->Set("name", "PlasticHammer")
-            )
-        )
-        ->Set("totalQuantity", 1)
-    )
-    ->SetCustomAttributes(
-        UAirbridgeMap::CreateObject()
-        ->Set("promotion", "FirstPurchasePromotion")
-    )
- );

+ FAirbridge::TrackEvent(
+    AirbridgeCategory::ORDER_COMPLETED,
+    UAirbridgeMap::CreateObject()
+    ->Set(AirbridgeAttribute::ACTION, "Tool")
+    ->Set(AirbridgeAttribute::LABEL, "Hammer")
+    ->Set(AirbridgeAttribute::VALUE, 10)
+    ->Set(AirbridgeAttribute::CURRENCY, "USD")
+    ->Set(AirbridgeAttribute::PRODUCTS, UAirbridgeList::CreateObject()->Add(
+            UAirbridgeMap::CreateObject()
+            ->Set(AirbridgeAttribute::PRODUCT_ID, "12345")
+            ->Set("name", "PlasticHammer")
+        )
+    )
+    ->Set("totalQuantity", 1),
+    UAirbridgeMap::CreateObject()
+    ->Set("promotion", "FirstPurchasePromotion")
+ );

FAirbridgeUnreal::SetUser 函数已被 FAirbridge::SetUser 相关函数替代。

1234567891011
- FAirbridgeUnreal::SetUserID("personID");
- FAirbridgeUnreal::SetUserEmail("persondoe@airbridge.io");
- FAirbridgeUnreal::SetUserPhone("1(123)123-1234");
- FAirbridgeUnreal::SetUserAttribute("key", "value");
- FAirbridgeUnreal::SetUserAlias("key", "value");

+ FAirbridge::SetUserID("personID");
+ FAirbridge::SetUserEmail("persondoe@airbridge.io");
+ FAirbridge::SetUserPhone("1(123)123-1234");
+ FAirbridge::SetUserAttribute("key", "value");
+ FAirbridge::SetUserAlias("key", "value");

高级设置

FAirbridgeUnreal::Impression 函数已被 FAirbridge::Impression 函数替代。

12345678910111213
- FAirbridgeUnreal::Impression(TEXT("https://abr.ge/~~~"));

+ FAirbridge::Impression(
+    TEXT("https://abr.ge/~~~"),
+    []() 
+    {
+        // Handle on success
+    },
+    [](const FString& Error)
+    {
+        // Handle on failure
+    }
+);

FAirbridgeUnreal::Click 函数已被 FAirbridge::Click 函数替代。

12345678910111213
- FAirbridgeUnreal::Click(TEXT("https://abr.ge/~~~"));

+ FAirbridge::Click(
+    TEXT("https://abr.ge/~~~"),
+    []() 
+    {
+        // Handle on success
+    },
+    [](const FString& Error)
+    {
+        // Handle on failure
+    }
+);

FAirbridgeUnreal::SetAttributionCallback 函数已被 FAirbridge::SetOnAttributionReceived 函数替代。

1234567891011121314151617181920
- AExampleGameModeBase::AExampleGameModeBase()
- {
-   AirbridgeCallbacks = CreateDefaultSubobject<UAirbridgeCallbacks>(TEXT("AIRBRIDGE_CALLBACKS"));
- }

void AExampleGameModeBase::BeginPlay()
{
-    AirbridgeCallbacks->OnAttributionReceived.AddDynamic(this, &AExampleGameModeBase::OnAttributionReceived);
-    FAirbridgeUnreal::SetAttributionCallback();

+    FAirbridge::SetOnAttributionReceived([this](const TMap<FString, FString>& AttributionResult)
+    {
+        // using attribution
+    });
}

- void AExampleGameModeBase::OnAttributionReceived(const FAirbridgeAttribution& Attribution)
- {
-     // using attribution
- }

设备标识符设置

12345678
- FAirbridgeUnreal::SetDeviceAlias("ADD_YOUR_KEY", "AND_YOUR_VALUE");
+ FAirbridge::SetDeviceAlias("ADD_YOUR_KEY", "AND_YOUR_VALUE");

- FAirbridgeUnreal::RemoveDeviceAlias("DELETE_THIS_KEY");
+ FAirbridge::RemoveDeviceAlias("DELETE_THIS_KEY");

- FAirbridgeUnreal::ClearDeviceAlias();
+ FAirbridge::ClearDeviceAlias();

Hybrid App 设置

FAirbridgeUnreal::CreateWebInterface 函数已被 FAirbridge::CreateWebInterfaceScriptFAirbridge::HandleWebInterfaceCommand 函数替代。

123456789101112131415161718
- TUniquePtr<IAirbridgeWebInterface> AirbridgeWebInterface;
+ FString WebInterfaceScript;

- AirbridgeWebInterface = TUniquePtr<IAirbridgeWebInterface>(FAirbridgeUnreal::CreateWebInterface(
-     TEXT("YOUR_WEB_TOKEN"),             
-     [](const FString& Msg) -> FString   
-     {
-         return TEXT("...");
-     }
- ));

+ WebInterfaceScript = FAirbridge::CreateWebInterfaceScript(
+     TEXT("YOUR_WEB_TOKEN"),	
+     [](const FString& Msg) -> FString
+     {
+         return TEXT("...");
+     }("payload")
+ );

Was this page helpful?

Have any questions or suggestions?