Deeplink

 

1. KTplay Deeplink Explains

In KTplay, Deeplink is a reference of a specific element (destination) that allow player or game logic directly forward to. Deeplink can be used in navigation between game, KTplay Community and web URL.

1.1 Deeplink Target

Deeplink target is the destination of the navigation that specified by Deeplink ID, and with the following supported resources:

  • KTplay Community Resource Locator (KTRL)

    KTRL specify supported deeplink target of Community Window, such as Discussion list, Inbox, Collection, etc. The supported target will be selected from KTplay developer portal.

    When the Deepink is activated, the locating community UI section will be displayed.

  • Game Resource Locator (GRL)

    GRL specify the configured Deeplink target of Game, that can be any locations in the game, e.g. it can be game’s menu item, shop location, configuration page, etc. GRL need to configured in KTplay developer portal before used. It is recommended to use more sensible naming convention for GRL. When this type of Deeplink activated, SDK will provide the GRL to game via callback, so that game can proceed with required action.

  • Web URL (URL)

    URL is actual an internet URL. When this type of Deeplink activated, SDK will use device’s web browser to open the page specified by URL.

Apart from the definition of Deeplink target, additional parameters can be added to provide more details to the Deeplink specification. Example, topic or next level UI element of Community Window.

1.2 Deeplink Trigger Point

The Deeplink trigger point specify where the Deeplink is activated, it can viewed as entry or carrier of Deeplink. Example.

  • KTplay Community Trigger point

    Community Message or Discussion that embedded with KTRL.

  • Game Trigger point

    It can be a button in Game’s UI, or event of the game logic.

2. Deeplink Integration

2.1 Pre Configured Deeplink

Use Deeplink ID that defined in KTplay Developer portal, it has benefits of flexibility of redefined the destination without anything changed in game client.

Step 1.Design the required Deeplink Trigger Points

Design the required UI elements, carrier and so the scenarios for Deeplink activation, i.e. where to trigger the Deeplink.

Step 2. Configure Deeplinks

SDK use Deeplink ID to identify Deeplink resource used. And the Deeplink configuration is to setup required Deeplink resource and assign a Deeklink ID to It in KTplay Developer Portal.

Step 3. Add Deeplink into your code

Add the Deeplink integration code into trigger point UI for example.

String deeplinkId = "KTRL.1472120161";
KTPlay.openDeepLink(deeplinkId);

NSString* deeplinkId = @"KTRL.1472120161";
[KTPlay openDeepLink: deeplinkId];

String deeplinkId = "KTRL.1472120161";
KTPlayC::openDeepLink(deeplinkId);

string deeplinkId = "KTRL.1472120161";
KTPlay.OpenDeepLink(deeplinkId);

var deeplinkId:String = "KTRL.1472120161";
KTPlay.openDeepLink(deeplinkId);

2.2 Dynamic Deeplink

KTplay Resource Locator (KTRL), it doesn’t require pre-configuration on KTplay developer portal, game client can determine where to go to in KTplay Community. Its format is
scheme://path?parametersString

Where

  • scheme . It specifies the protocol or method to locate the resource needed. Schemes supported in KTplay platform includes ktplay, game, http, etc. example, ktplay scheme specify the location method used in KTplay platform especially in its community. Scheme consists of a sequence of letters that followed by a colon (:).
  • path . It specifies the address of targeted resource.
  • parametersString . It specifies the parameters send with the deeplink, it is using format of http QueryString .

Example:

ktplay://chat/message?game_user_id=952780

the deeplink to open Chat window with chat target of player id (952780)。

2.2.1 Integration

Step 1.Design the required Deeplink Trigger Points

Design the required UI elements, carrier and so the scenarios for Deeplink activation, i.e. where to trigger the Deeplink.

Step 2. Add Deeplink into your code

Add the Deeplink integration code into trigger point UI for example.

String deeplinkSchema = "ktplay://chat?game_user_id=952780";
KTPlay.openDeepLink(deeplinkSchema);

NSString* deeplinkSchema = @"ktplay://chat?game_user_id=952780";
[KTPlay openDeepLink: deeplinkSchema];

String deeplinkSchema = "ktplay://chat?game_user_id=952780";
KTPlayC::openDeepLink(deeplinkSchema);

string deeplinkSchema = "ktplay://chat?game_user_id=952780";
KTPlay.OpenDeepLink(deeplinkSchema);

var deeplinkSchema:String = "ktplay://chat?game_user_id=952780";
KTPlay.openDeepLink(deeplinkSchema);

2.2.2 All Available KTplay Resources

Resource Path Parameter
Homepage homepage  
Recommended topics topics/recommended  
All topics topics/category category_id (Optional)
Videos topics/videos  
Following users' topics topics/following  
Search topic topics/search  
Results of search topic topics/search/result keyword (URL Encode is required)
A specific topic topic topic_id
Create a topic topic/creation category_id (Optional)
title (Optional, URL Encode is required)
text(Optional, URL Encode is required)
image_path (Optional).
video_path (Optional).
Report a topic topic/report topic_id
In review videos topic/video/reviewing  
Create a reply reply/creation topic_id
text(Optional, URL Encode is required)
image_path(Optional).
Report a reply reply/report reply_id
Influencer ranking - All Time influencers/ranking  
Influencer ranking - Today influencers/ranking/today  
All collections collections  
A specific collection collection collection_id
Messages messagepage  
Inbox inbox/message  
A specific chatting chat/message user_id or game_user_id
Stranger chat messages chat/message/stranger  
Blocked chatting users chat/user/blocked  
Search user user/search  
Results of search user user/search/result keyword (URL Encode is required)
A specific user's profile user/profile user_id or game_user_id
A specific user's replies user/replies user_id or game_user_id
A specific user's likes user/likes/received user_id or game_user_id
A specific user's following user/following user_id or game_user_id
A specific user's followers user/followers user_id or game_user_id
A specific user's favorite topics user/favorite user_id or game_user_id
Report an user user/report user_id or game_user_id
My profile me/profile  
My topics me/topics  
My replies me/replies  
My notifications me/notifications  
My likes me/likes/received  
My following me/following  
My followers me/followers  
My drafts me/drafts  
Set nickname me/nickname/setting  
Set profile photo me/avatar/setting  
Bind account me/account/binding  
My favorite topics me/favorite  
Set profile background me/background_image/setting  
Set profile bio me/bio/setting  
Settings settings  
KTPlay Terms ktplay/terms  
About influence score influence/about  
Recent viewed topics topics/recently_viewed  
Recent viewed users users/recently_viewed  
Login & Register authentication  
Login authentication/login  
Register authentication/register  
Forget password authentication/password/reset  
Change password authentication/password/setting  
About Web Community web/about  
Leaderboards leaderboards  
Leaderboard leaderboard leaderboard_id

2.3 Handle Deeplink Callback

If Game Resource Locator (GRL) is used, once the user triggered the deeplink, SDK will callback GRL information to your game, you must handle the deeplink callback in your game.

KTPlay.setOnDeepLinkListener(new OnDeepLinkListener() {
            @Override
            public void onDeepLink(String deepLink) {
      Game::handleDeepLink(deepLink)
            }
        });

  [KTPlay setDeepLinkBlock:^(NSString *linkSchemas) {
  
      Game::handleDeepLink(linkScheme)

  }];

void deepLinkCallback (const char *linkSchemas){
    Game::handleDeepLink(linkScheme)
}

KTPlayC::setDeepLinkCallback(deepLinkCallback );

KTPlay.SetDeepLinkDelegate ((string linkScheme) => {
      handleDeepLink(linkScheme);
    
});

public function deepLinkListener(deepLinkScheme:String):void{
            log("deepLinkScheme: "+deepLinkScheme);
}
KTPlay.setOnDeepLinkListener(deepLinkListener);
Have more questions? Submit a request

0 Comments

Please sign in to leave a comment.