MSDK切换YSDK之技术篇

目录

1. 环境及权限

YSDK提供两套域名给开发者:

域名名称 对应地址 使用方法
YSDK正式环境 https://ysdk.qq.com 主要用于线上应用
YSDK联调环境 https://ysdktest.qq.com 主要用于接入或者版本更新时联调

这两套域名环境分别对应MSDK的正式和联调域名环境,用法与MSDK的一致,唯一的区别是YSDK为https,MSDK为http。

备注:YSDK的两套环境都有对应的接口权限,当调用接口没有权限时,log会提示 appid not exist。

2. SDK功能

目前YSDK仅提供登陆和支付相关功能具体包括:
(1)登陆:支持手Q、微信登陆。包括授权登陆、自动登录、定时登陆等,这部分和MSDK一致。
(2)支付:YSDK使用midas插件版,目前仅支持游戏使用游戏币模式。客户端提供了充值游戏币接口,后台提供了查余额、扣款、回退的接口。

3. 更新方法

YSDK接入过程中,游戏只需要删除MSDK相关的资源,然后按照YSDK资源引入的方式引入YSDK的资源即可。下面是删除MSDK相关内容的流程:
• 删除libs目录下相关jar,包括但不限于:

android-support-v4.jar,jg_filter_sdk_*.jar,mid-sdk-*.jar,Xg_sdk_*.jar,MSDK_Android_*.jar

如果游戏自身代码使用到上面列举的jar,请保留不要删除。

• 删除libs目录下相关的so,包括但不限于armeabi、armeabi-v7a、x86、x86_64、armeabi-v8a目录下:
libBugly.so、libtpnsSecurity.so、libtpnsWatchdog.so、libMSDK.so

• 删除jni目录以及下面CommonFiles目录下相关jni文件,包括但不限于:
· 所有以com_tencent_msdk开头的.h和.cpp
· 所有以WG开头的的.h和.cpp。例如WGCommon、WGPlatform、WGSaveUpdateObserver、WGADObserver、WGGroupObserver、WGPlatformObserver、WGPublicDefine

• 删除Res目录下各级目录中相关资源文件,包括但不限于:
· 所有以msdk开头的xml
· 所有以com_tencent_msdk开头的xml

• 删除assets目录下相关配置文件,包括但不限于:
· adconfig.ini
· channel.ini
· msdkconfig.ini

4. 配置文件

4.1 AndroidMainfest修改

目前YSDK仅提供微信和手Q相关的功能,因此游戏可以删除原有权限中MSDK相关的但是下面不包含的剩余内容。

4.1.1 关于YSDK需要的权限

YSDK 在运行时仅需要应用授权以下权限,游戏可以结合自身需求修改对应的android权限申明:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.RESTART_PACKAGES" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

4.1.2 手Q相关的声明

<!-- TODO SDK接入 QQ接入配置 START -->
<activity
    android:name="com.tencent.tauth.AuthActivity"
    android:launchMode="singleTask"
    android:noHistory="true" >
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="tencent游戏的手Q appid" />
    </intent-filter>
</activity>
<activity
    android:name="com.tencent.connect.common.AssistActivity"
    android:configChanges="orientation|screenSize|keyboardHidden"
    android:screenOrientation="portrait"
    android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<!-- TODO SDK接入 QQ接入配置 END -->

4.1.3 微信相关声明

<!-- TODO SDK接入 微信接入配置 START -->
<activity
    <!-- 注意:此处应改为 游戏包名.wxapi.WXEntryActivity -->
    android:name="com.tencent.tmgp.yybtestsdk.wxapi.WXEntryActivity"
    android:excludeFromRecents="true"
    android:exported="true"
    android:label="WXEntryActivity"
    android:launchMode="singleTop"
    <!-- 注意:此处应改为 游戏包名.diff -->
    android:taskAffinity="com.tencent.tmgp.yybtestsdk.diff">
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <!-- 注意:此处应改为 游戏的微信appid -->
        <data android:scheme="wxfcefed3f366fa606" />
    </intent-filter>
</activity>
<!-- TODO SDK接入 微信接入配置 END -->

4.1.4 支付相关声明

<!-- TODO SDK接入 接入支付需要设置屏幕兼容声明 START -->
<supports-screens
    android:anyDensity="true"
    android:largeScreens="true"
    android:normalScreens="true" />
<!-- TODO SDK接入 接入支付需要设置屏幕兼容声明 END -->

4.2 SDK相关配置

这部分内容建议游戏直接删除前面列出的assets下面的adconfig.ini、channel.ini、msdkconfig.ini三个文件,直接拷入YSDK的配置文件ysdkconf.ini文件(如下),然后修改为游戏对应的配置。目前YSDK仅有如下配置,没有其余配置信息。

;**************游戏相关配置, 游戏需要根据各自情况修改 START **********
;游戏的QQAPPID
QQ_APP_ID=1104936***
;游戏的微信APPID
WX_APP_ID=wxfcefed3f366***
;游戏的OFFER_ID
OFFER_ID=1104936***
;***************游戏配置项, 游戏需要根据各自情况修改 END **************
;************* YSDK相关配置项,游戏需要根据各自情况修改 START **********
;联调环境
YSDK_URL=https://ysdktest.qq.com
;正式环境
;YSDK_URL=https://ysdk.qq.com
;************** YSDK相关配置项,游戏需要根据各自情况修改 END **************

5. 初始化

5.1 SDK的初始化

MSDK初始化的代码为:

MsdkBaseInfo baseInfo = new MsdkBaseInfo();
baseInfo.qqAppId = "100703379";
baseInfo.qqAppKey = "4578e54fb3a1bd18e0681bc1c734514e";
baseInfo.wxAppId = "wxcde873f99466f74a";
baseInfo.msdkKey = "5d1467a4d2866771c3b289965db335f4";
baseInfo.offerId = "100703379";
WGPlatform.Initialized(this, baseInfo);
// 设置拉起QQ时候需要用户授权的项
WGPlatform.WGSetPermission(WGQZonePermissions.eOPEN_ALL);

YSDK 的初始化只需要游戏launcherActivity的onCreate调用:

YSDKApi.onCreate(this);   

5.2 SDK的声明周期函数调用

下面是MSDK的声明周期函数与YSDK声明周期函数的调用对照。游戏需要在对应的位置将WGPlatform的函数改为YSDKApi的

YSDK声明周期函数 MSDK生命周期函数 函数调用位置
onCreate launcherActivity的onCreate,也即YSDK的初始化
onResume onResume 主Activity的onResume
onPause onPause 主Activity的onPause
onStop onStop 主Activity的onStop
onDestroy onDestroy 主Activity的onDestroy
onRestart onRestart 主Activity的onRestart
onActivityResult onActivityResult launcherActivity的onActivityResult
handleIntent handleCallback 在launcherActivity的onNewIntent和onCreate方法中调用

5.3 全局回调设置

MSDK目前提供了多个全局回调,YSDK只涉及其中两个,用法一致。具体如下:

YSDK全局回调 MSDK全局回调 对应功能
YSDKUserListener WGPlatformObserver YSDK的回调仅包含MSDK对应的login、wakeup、relation这三个
YSDKBuglyListener WGPlatformObserver YSDK的回调仅包含SDK对应的OnCrashExtMessageNotify

对应的YSDK的回调的设置也会有两个函数setUserListener、setBuglyListener对应MSDK的setObserver。

6. 客户端接口

这部分内容主要列举一下MSDK客户端接口与YSDK客户端接口对应关系,以及对应的功能。声明周期的函数因为已经说过,再不重复。

YSDK接口 MSDK接口 接口功能
getVersion WGGetVersion 获取SDK版本
getChannelId WGGetChannelId 获取安装渠道
getRegisterChannelId WGGetRegisterChannelId 获取用户注册渠道,需要登录后调用
isPlatformInstalled WGIsPlatformInstalled 检查手Q或者微信是否安装
getPlatformAppVersion WGGetPlatformAPPVersion 获取当前手机安装的手Q或者微信版本
login WGLogin 用户登录
logout WGLogout 注销登录
getLoginRecord WGGetLoginRecord 获取本地票据
getPfKey WGGetPfKey 获取pfkey,需要登录后调用
getPf WGGetPf 获取pf,需要登录后调用
switchUser WGSwitchUser 异账号切换,游戏需要在wakeupNotify返回
queryUserInfo WGQueryQQMyInfo 查询用户个人信息
reportEvent WGReportEvent 上报自定义事件
recharge 用户充值

以上信息是否解决您的问题?

Copyright © 1998 - 2017 Tencent. All Rights Reserved.

腾讯公司 版权所有

有问必答 返回顶部