前置条件
您已经按msdk unity接入配置模块说明完成 接入配置
检查手Q、微信是否安装
1 概要说明
检查手Q、微信是否安装
2 注册回调
无
3 接口调用
1)功能描述
检查手Q、微信是否安装,接口详细说明如下
2)接口声明
bool WGIsPlatformInstalled(ePlatform platformType);
3)参数说明
参名称 | 参数类型 | 说明 |
---|---|---|
platform | ePlatform | 游戏传入的平台类型, 可能值为: ePlatform_QQ, ePlatform_Weixin |
4)返回值
返回值类型 | 说明 |
---|---|
bool | false表示没有安装, true则表示安装了 |
5)示例代码
bool installed = WGPlatform.Instance.WGIsPlatformInstalled(ePlatform.ePlatform_QQ);
获取手Q、微信版本
1 概要说明
获取手Q、微信版本
2 注册回调
无
3 接口调用
1)功能描述
目前仅Android支持获取手Q、微信版本号。接口详细说明如下
2)接口声明
string WGGetPlatformAPPVersion(ePlatform platform);
3)参数说明
参数名称 | 参数类型 | 说明 |
---|---|---|
platform | ePlatform | 游戏传入的平台类型, 可能值为: ePlatform_QQ, ePlatform_Weixin |
4)返回值
返回值类型 | 说明 |
---|---|
string | APP版本号 |
5)示例代码
string version = WGPlatform.Instance.WGGetPlatformAPPVersion(ePlatform.ePlatform_QQ);
检查接口是否支持
1 概要说明
检查当前手Q、微信版本是否支持某个api
2 注册回调
无
3 接口调用
1)功能描述
有一些api在比较新的手Q、微信版下才能使用。调用WGCheckApiSupport接口会检查当前手Q、微信版本是否支持某个api。接口详细说明如下:
2)接口声明
bool WGCheckApiSupport(eApiName apiName);
3)参数说明
参数名称 | 参数类型 | 说明 |
---|---|---|
apiName | eApiName | 例如:eApiName_WGSendToQQWithPhoto,eApiName_WGJoinQQGroup |
4)返回值
返回值类型 | 说明 |
---|---|
bool | false不支持, true则表示支持 |
5)示例代码
bool isSupport = WGPlatform.Instance.WGCheckApiSupport((eApiName)api);
获取MSDK版本
1 概要说明
获取MSDK版本
2 注册回调
无
3 接口调用
1)功能描述
调用WGGetVersion接口会返回MSDK的版本号。接口详细说明如下
2)接口声明
string WGGetVersion();
3)参数说明
无
4)返回值
返回值类型 | 说明 |
---|---|
string | MSDK版本号。例如:2.14.5a |
5)示例代码
string version = WGPlatform.Instance.WGGetVersion()
获取安装渠道
1 概要说明
获取安装渠道
备注:在验证获取安装渠道号接口接入后是否正常尽量选择真机进行验证;如果使用腾讯手游助手模拟器验证,请不要直接在本地安装apk到腾讯手游助手模拟器上,因为腾讯手游助手模拟器会对于本地安装的apk进行强制更改渠道号为100048(原渠道号小于6位的)或者为10004822
2 注册回调
无
3 接口调用
1)功能描述
安装渠道:游戏上线前根据渠道名称(例如应用宝,豌豆荚,91等)打包成不同渠道号的 apk 包, apk 包中的渠道号称之为安装渠道;对应 TLog 的 LoginChannel 字段。
调用WGGetChannelId会返回游戏的安装渠道。接口详细说明如下
2)接口声明
string WGGetChannelId();
3)参数说明
无
4)返回值
返回值类型 | 说明 |
---|---|
string | 返回安装渠道id。如果该接口返回值为空,请再读取assets/channel.ini中的渠道号, 故游戏测试阶段可以自己写入渠道号到assets/channel.ini用于测试,正式渠道id会读取包中的值 IOS返回plist中的CHANNEL_DENGTA字段 |
5)示例代码
string channelId = WGPlatform.Instance.WGGetChannelId();
6)特殊说明
无
7)名称解释
安装渠道:游戏上线前根据渠道名称(例如应用宝,豌豆荚,91等)打包成不同渠道号的apk包, apk包中的渠道号称之为安装渠道.
获取注册渠道
1 概要说明
获取注册渠道
2 注册回调
无
3 接口调用
1)功能描述
注册渠道:用户在微信或手Q平台首次登陆时的安装渠道, 该值与账户绑定,不会改变;对应 TLog 的 RegChannel 字段。
用WGGetRegisterChannelId会返回用户的注册渠道。接口详细说明如下
2)接口声明
string WGGetRegisterChannelId();
3)参数类型
无
4)返回值类型
返回值类型 | 说明 |
---|---|
string | 返回注册渠道id。例如:2017 |
5)示例代码
string registerChannelId = WGPlatform.Instance.WGGetRegisterChannelId();
6)特殊说明
无
7)名称解释
注册渠道:用户在微信或手Q平台首次登陆时的安装渠道, 该值与账户绑定,不会改变.
用户反馈
1 概要说明
用户反馈:可以通过该事件接口,进行用户反馈
2 注册回调
无
3 接口调用
1)功能描述
用户反馈:可以通过该事件接口,进行用户反馈,反馈的内容可通过http://dev.ied.com/msdk/userfeedback/index查看(内网访问,可由对应腾讯运营接口人协助查询)。要完成此功能需要用到的接口有: WGFeedback, 接口详细说明如下:
2)接口声明
void WGFeedback(string body);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
body | String | 反馈的内容 |
4)返回值
无
5)示例代码
WGPlatform.Instance.WGFeedback("用户体验做到极致");
Deeplink链接跳转
1 概要说明
Deeplink链接跳转
2 注册回调
无
3 接口调用
1)功能描述
Deeplink 可支持分别跳转至微信游戏中心原生页面,和活动页面,具体表现方案和显示入口可以根据游戏的实际情况来定制。游戏中心原生页面包括:微信游戏中心首页、微信游戏中心详情页、微信游戏中心游戏库等;通过游戏后台参数设定来实现。活动页面包括:游戏的H5页面,通过游戏后台配置跳转地址来实现
2)接口声明
public static void WGOpenWeiXinDeeplink(string link);
3)参数说明
参数名称 | 类型 | 说明 |
---|---|---|
link | String | 具体跳转deeplink,可填写为: INDEX:跳转微信游戏中心首页 DETAIL:跳转微信游戏中心详情页 LIBRARY:跳转微信游戏中心游戏库 具体跳转的url (需要在微信游戏中心先配置好此url) |
4)返回值
无
5)示例代码
WGPlatform.Instance.WGOpenWeiXinDeeplink("INDEX");
第三方APP启动特权
1 概要说明
第三方APP启动特权,可以让用户在第三方APP中拉起游戏,并传递数据到游戏的功能,用于第三方APP和游戏的合作,例如从腾讯视频启动游戏的用户可得到得分,经验加成等。
2 注册回调
1) 您已经在腾讯开放平台上注册游戏并通过审核,或您的腾讯接口人已经通过内部渠道帮您注册游戏。
2) 您已经按接入配置模块说明完成 接入配置。
3) Android:需要修改AndroidManifest.xml在其中添加相应配置项,并把qqappid替换成您的应用的qqappid
ios:需要修改plist在其中添加相应URL Types配置项,并把事例中qqappid部分替换成您的应用的qqappid
备注:注意新老版本在配置上有所不同,具体配置参考如下注释说明,老版本配置在3.2.5开始支持,新版本配置在3.2.8及其以上版本支持
<!-- Android第三方APP拉起配置 -->
<activity
android:name="com.tencent.msdk.SchemeActivity"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<!-- 3.2.8a及其以上版本这里请设置tencentmsdk+qqappid;3.2.5a~3.2.7a版本这里请设置tencentvideo+qqappid-->
<data android:scheme="tencentmsdk100703379" />
</intent-filter>
</activity>
<!-- ios第三方APP拉起配置 -->
//3.2.5i~3.2.7i版本以下配置如下:
Identifier:tencentvideo
URL Schemes:tencentlaunch100703379
Role:Editor
//3.2.8i及其以上版本配置如下:
Identifier:tencentmsdk
URL Schemes:tencentmsdk100703379
Role:Editor
4) 需要实现OnWakeupNotify回调函数
第三方APP拉起游戏时,会把启动的平台,需要传递的参数等信息,通过WGPlatformObserver的OnWakeupNotify(WakeupRet)通知到游戏,其中WakeupRet.platform代表拉起游戏的平台,例如此时WakeupRet.platform为EWakeupPlatform.eWakeupPlatform_TencentMsdk(3.2.5~3.2.7版本这里为EWakeupPlatform.eWakeupPlatform_TencentVideo);WakeupRet.extInfo是Vector
3 接口调用
无
4)返回值
无
5)示例代码
virtual void OnWakeupNotify(WakeupRet &wakeupRet)
{
LOGD("OnWakeupNotify: platform:%d flag:%d openid:%s", wakeupRet.platform, wakeupRet.flag,
wakeupRet.open_id.c_str());wakeupRet.extInfo
// TODO GAME 这里要处理异账号的逻辑
switch (wakeupRet.flag)
{
case eFlag_Succ:
if(wakeupRet.platform == eWakeupPlatform_TencentMsdk )//3.2.5~3.2.7版本为eWakeupPlatform_TencentVideo
{
jstring j_msg_title = mEnv->NewStringUTF("由MSDK Scheme启动");
std::string c_extinfo;
for(int i =0;i<wakeupRet.extInfo.size();i++){
c_extinfo = c_extinfo + wakeupRet.extInfo[i].key + ":" + wakeupRet.extInfo[i].value + "\n";
}
jstring j_msg_msg = mEnv->NewStringUTF(c_extinfo.c_str());
jclass cls = mEnv->GetObjectClass(gActivity);
jmethodID methodShowTips = mEnv->GetMethodID(cls, "showTipsDialog", "(Ljava/lang/String;Ljava/lang/String;)V");
mEnv->CallVoidMethod(gActivity, methodShowTips, j_msg_title, j_msg_msg);
mEnv->DeleteLocalRef(j_msg_title);
mEnv->DeleteLocalRef(j_msg_msg);
}
std::string platformdata;
std::string gamedata;
for(int i = 0;i < wakeupRet.extInfo.size();i++){
if(wakeupRet.extInfo[i].key.compare("platformdata"))
{
platformdata = wakeupRet.extInfo[i].value;
LOGD("OnwakeupNotify: platformdata:%s",platformdata);
}
if(wakeupRet.extInfo[i].key.compare("gamedata"))
{
gamedata = wakeupRet.extInfo[i].value;
LOGD("OnwakeupNotify: gamedata:%s",gamedata);
}
}
default:
{
// default 不处理
LOGD("login%s", "");
jclass cls = mEnv->GetObjectClass(gActivity);
jmethodID methodletUserLogout = mEnv->GetMethodID(cls, "letUserLogout", "()V");
mEnv->CallVoidMethod(gActivity, methodletUserLogout);
LOGD("OnWakeupNotify call letUserLogout end%s", "");
break;
}
}
}
根据 IP 地址获取国家信息
1)功能描述
根据 IP 地址获取国家信息。3.3.7版本开始新增该接口。为接收回调,您需要注册 WGPlatformObserver 并通过 OnLocationGotCountryFromIPNotify 进行处理
2)接口声明
void WGGetCountryFromIP();
3)参数说明
无
4)返回值
无,分享结果通过 WGPlatformObserver 回调 OnLocationGotCountryFromIPNotify 函数返回游戏
5)示例代码
//回调函数
WGPlatformObserver::OnLocationGotCountryFromIPNotify(GetCountryFromIPRet& fromIPRet);
//接口示例
WGPlatform::WGGetCountryFromIP();
MSDK 日志开关设置
1)功能描述
WGOpenMSDKLog 接口,true 打开,false 关闭。可选择性关闭日志(日志级别为 kLevelNone)。该接口优先级低于云控,当云控中设置日志级别时,该接口不起作用,此时业务可在云控中设置日志级别为 kLevelNone,从而不输出日志。3.3.29 版本开始新增该接口。
2)接口声明
void WGOpenMSDKLog(bool enabled);