12/12/2024 11:37:56
工具模块
一、概述
工具模块主要提供一些常用的工具方法,比如判断 App 是否安装, 其中 IsAppInstalled 是同步调用,不需要回调。
二、接入向导
2.1 判断App是否安装
1)功能描述
判断软件是否安装。Android 平台传 packageName 参数,而 iOS 平台传渠道参数或者 URLScheme,比如 "QQ"、"WeChat" 。iOS 平台需要在 info.plist 文件中配置 LSApplicationQueriesSchemes。
应用名 | Android 参数 | iOS 参数 |
---|---|---|
com.tencent.mm | 直接使用渠道名 WeChat | |
com.tencent.mobileqq | 直接使用渠道名 QQ | |
com.facebook.katana | fb:// | |
com.twitter.android | twitter:// | |
Messenger | com.facebook.orca | fb-messenger:// |
com.instagram.android | instagram:// |
2)接口声明
public static bool IsAppInstalled(string channel,string extra="")
static bool IsAppInstall(String channel,String extra="");
3)示例代码
#if UNITY_ANDROID
bool isQQInstalled = MSDKTools.IsAppInstalled("com.tencent.mobileqq");
bool isWeChatInstalled = MSDKTools.IsAppInstalled("com.tencent.mm");
#elif UNITY_IOS
bool isQQInstalled = MSDKTools.IsAppInstalled("QQ");
bool isWeChatInstalled = MSDKTools.IsAppInstalled("WeChat");
#endif
#if PLATFORM_ANDROID
bool isQQInstalled = MSDKTools::IsAppInstall("com.tencent.mobileqq");
bool isWeChatInstalled = MSDKTools::IsAppInstall("com.tencent.mm");
#else PLATFORM_IOS
bool isQQInstalled = MSDKTools::IsAppInstall("QQ");
bool isWeChatInstalled = MSDKTools::IsAppInstall("WeChat");
#endif
2.2 获取安装渠道
1)功能描述
此接口用于获取安卓 APK 包内的安装渠道(游戏上线前会在 飞鹰系统,将渠道号写入 APK 包内,并生成渠道安装包。用户下载并安装渠道安装包,在安装包中的渠道号称之为安装渠道号,对应 TLog 的 LoginChannel 字段)。
2)接口声明
public static string GetConfigChannel();
static std::string GetConfigChannelID(const std::string &seqID);
3)示例代码
string channel = MSDKTools.GetConfigChannel();
MSDKTools::GetConfigChannelID();
特别说明:
1.iOS 安装渠道号和注册渠道固定为 1001;
2.修改安装渠道号(即渠道号回写)方法由 GCloud(游戏更新 Dolphin 组件)提供,详情可咨询 GCloud 人工服务;
3.获取 APK/IPA 的注册渠道(对应 TLog 的 RegChannel 字段),可通过登录回调 MSDKLoginRet 中的 regChannelDis 参数值获取。其中 firstLogin 表示是否是首次登录游戏,值为 1 表示首次登录,值为 0 表示非首次登录。
请注意,注册渠道和安装渠道是两个字段,请业务侧区分使用。
案例:游戏内测期某用户下载渠道号为 89900001 的渠道包后安装登录,游戏正式上线后用户下载渠道号为 10000144 的渠道包后安装登录。此时该用户的注册渠道号为 89900001 ,安装渠道号为 10000144。
2.3 打开中控网页
1)功能描述
中控相关,用于打开中控网页,目前支持国内渠道,海外渠道暂不支持。 jsonStr 由中控下发的,MSDK 会用这个参数打开中控的 webview 页面。
2)接口声明
public static void OpenPrajnaWebView(string jsonStr)
static void OpenPrajnaWebView(String jsonStr);
3)示例代码
MSDKTools.OpenPrajnaWebView (jsonStr);
MSDKTools::OpenPrajnaWebView(jsonStr);
2.4 微信 deeplink
1)功能描述
根据当前登录态,打开对应应用 deeplink( deeplink 功能的开通和配置请联系各平台)
2)接口声明
public static void OpenDeepLink(string link);
static void OpenDeepLink(String link);
3)示例代码
MSDKTools.OpenDeepLink ("INDEX");
// MSDKTools.OpenDeepLink ("DETAIL");
// MSDKTools.OpenDeepLink ("https://pvp.qq.com/match/kcc.shtml");
MSDKTools::SetToolsObserver(new MyToolsObserver());
// MSDKTools::OpenDeepLink("INDEX");
// MSDKTools::OpenDeepLink("DETAIL");
// MSDKTools::OpenDeepLink("https://pvp.qq.com/match/kcc.shtml");
- INDEX:跳转微信游戏中心首页
- DETAIL:跳转微信游戏中心详情页
- 具体跳转的url(需在微信侧先配置好此 URL,传入跳转 URL 原始地址)
特别说明:
deepLink功能需联系微信游戏中心开通和配置。在微信侧配置的url具有有效期,有效期默认是6个月,到期后需要到微信平台将url续期才可以继续使用,如果url过期请求时会返回 "msg":"error from wx:{\"errcode\":-10016,\"errmsg\":\"openlink expired\"}"。
deeplink配置的url续期可以参考微信续期url的文档微信续期url的文档
2.5 iOS 游戏内评分功能
1)功能描述
iOS 在应用内弹出评分窗口。
特别说明:
1.调试版本不能提交评分,Release 版本能够提交评分。
2.正常情况下,调试版本能够弹出评分弹窗为功能正常。
2)接口声明
public static void ShowRatingAlert();
static void ShowRatingAlert();
3)示例代码
MSDKTools.ShowRatingAlert();
MSDKTools::ShowRatingAlert();
2.6 免流量接口
注册回调
1)功能描述
接受 MSDK 免流量服务查询的回调,游戏需要注册回调函数进行处理;
2)接口声明
public static event OnMSDKRetEventHandler<MSDKToolsRet> ToolsRetEvent;
static void SetToolsObserver(MSDKToolsObserver *observer)
3)示例代码
MSDKTools.ToolsFreeFlowRetEvent += OnToolsRetEvent;
private void OnToolsRetEvent(MSDKToolsRet toolsRet){
//此处为业务自己对回调的逻辑处理
if (RetEventShouldCallBack(toolsRet))
{
string methodName = GetMSDKBaseRetName(toolsRet.MethodNameId);
RetEventHandlerCallBackResult(toolsRet, methodName);
}
}
MSDKTools::SetToolsObserver(new MyToolsObserver());
class MyToolsObserver : public MSDKToolsObserver
{
public :
virtual void OnToolsRetNotify(const MSDKToolsRet &toolsRet) {
//此处为业务自己对回调的逻辑处理
handleCallback(toolsRet);
}
virtual void OnToolsFreeFlowRetNotify(const MSDKToolsFreeFlowRet &toolsFreeFlowRet) {
//此处为业务自己对回调的逻辑处理
handleCallback(toolsFreeFlowRet);
}
};
4)数据结构
MSDKToolsFreeFlowRet
继承自 MSDKBaseRet,包含基础的信息
成员变量名称 | 类型 | 说明 |
---|---|---|
freeFlowInfo | MSDKToolsFreeFlowInfo | 用于存储免流信息 |
MSDKToolsFreeFlowInfo
成员变量名称 | 类型 | 说明 |
---|---|---|
ipAll | string | 全部免流IP列表 |
ipConnect | string | 免流时返回配置信息对应的,否则返回入参的 key |
isFree | int | 1:免流,0:不免 |
ccType | int | 1: 中国联通,2: 中国电信,3:中国移动,99:其它 |
查询免流服务
1)功能描述
客户端调用后台免流服务查询接口查询免流服务信息。
客户端请求会向后台透传key参数,此参数为游戏IP。如果为免流用户,服务端会将将对应的VIP发给客户端。
2)接口声明
/**
* 免流服务查询
* @param key 根据 key(原IP) 返回,后台免流配置 对应的 value(对应的 svip)
* @param extraJson 扩展字段,暂时没有使用
*/
public static bool GetFreeFlowInfo(string key, string extra="")
/**
* 免流服务查询
* @param key 根据 key(原IP) 返回,后台免流配置 对应的 value(对应的 svip)
* @param extraJson 扩展字段,暂时没有使用
*/
static bool GetFreeFlowInfo(String key, String extraJson= "");
3)示例代码
MSDKTools.GetFreeFlowInfo(key);
MSDKTools::GetFreeFlowInfo(key);
All rights reserved.