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.
//The deeplinkId is pre-configured on the developer Portal.
String deeplinkId = "KTRL.1472120161";
KTPlay.openDeepLink(deeplinkId);
//The deeplinkId is pre-configured on the developer Portal.
NSString* deeplinkId = @"KTRL.1472120161";
[KTPlay openDeepLink: deeplinkId];
//The deeplinkId is pre-configured on the developer Portal.
String deeplinkId = "KTRL.1472120161";
KTPlayC::openDeepLink(deeplinkId);
//The deeplinkId is pre-configured on the developer Portal.
string deeplinkId = "KTRL.1472120161";
KTPlay.OpenDeepLink(deeplinkId);
//The deeplinkId is pre-configured on the developer Portal.
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) {
//The following line is pseudo code, you need to replace it with your own processing logic when integrating SDK.
Game.handleDeepLink(deepLink)
}
});
[KTPlay setDeepLinkBlock:^(NSString *linkSchemas) {
//The following line is pseudo code, you need to replace it with your own processing logic when integrating SDK.
[Game handleDeepLink:linkScheme]
}];
void deepLinkCallback (const char *linkSchemas){
//The following line is pseudo code, you need to replace it with your own processing logic when integrating SDK.
Game::handleDeepLink(linkScheme)
}
KTPlayC::setDeepLinkCallback(deepLinkCallback );
KTPlay.SetDeepLinkDelegate ((string linkScheme) => {
//The following line is pseudo code, you need to replace it with your own processing logic when integrating SDK.
handleDeepLink(linkScheme);
});
public function deepLinkListener(deepLinkScheme:String):void{
//The following line is pseudo code, you need to replace it with your own processing logic when integrating SDK.
log("deepLinkScheme: "+deepLinkScheme);
}
KTPlay.setOnDeepLinkListener(deepLinkListener);
0 Comments