Wiki.ssl.msdk.qq.com



MSDK 3.3.0更新指引接口变更删除接口WGBindQQGroupWGJoinQQGroupWGQueryQQGroupInfoWGUnbindQQGroupWGQueryQQGroupKey参数变更WGSendToQQWithRichPhotoWGSendToWeixinWGSendToWeixinWithUrlWGSendToWeixinWithVideoWGSendToWXWithMiniApp新增接口WGRegisterAPNSPushNotification (仅iOS)WGSuccessedRegisterdAPNSWithToken (仅iOS)WGFailedRegisteredAPNS (仅iOS)WGCleanBadgeNumber (仅iOS)WGReceivedMSGFromAPNS (仅iOS)WGSendToQQWithRichPhoto(仅iOS)WGLaunchMiniAppWGSendToQQWithTextWGOpenEmbeddedWebViewWGCloseEmbeddedWebViewWGCallToEmbeddedWebViewWGSetEmbeddedWebViewBackground废弃接口WGSendToWXGameFriendv2.1x升级到v3.x方案1包结构说明1. MSDK的发布包(zip)主要包含两个重要部分MSDKLibrary和MSDKDemo,前者为MSDK库,后者MSDK接口的使用示例2. (若游戏只使用Java接口可不关注此项)MSDKC11So,MSDKC99So分别是在C11,C99环境下编译的MSDK的libMSDKSystem.so(MSDK核心so库)。MSDKLibrary中默认是使用C11的so库,如果游戏没有特别指定c++版本,则默认是使用C11编译,直接使用MSDKLibrary即可。 一般在Android.mk在指定的方式如下:LOCAL_CFLAGS := -std=c99LOCAL_CFLAGS := -std=c++11(如果不指定则默认是此项)3. MSDKDemo_Buildxxx_3.0.0a_xxx_test.apk是MSDKDemo的apk包,供游戏体验使用4. build.gradle, settings.gradle是用来支持游戏使用Android Studio打开MSDK的示例工程,游戏也可直接用Eclipse直接import MSDKDemo,MSDKLibrary来打开示例工程5. MSDKLibrary/jni/WGPlatform.h中包含了所有的接口说明(java与C++的接口是对应的)2升级说明2.1 代码文件更新2.1.1使用Java接口游戏对于只使用Java接口的游戏,游戏只需更新so,jar包,配置文件,资源文件等即可。下面是so, jar包更新方法。1)复制(如重复则替换)MSDKLibrary的libs目录下的so,及jar包到游戏相应目录。其中so库相对于v2.1x的版本多了libMSDKSystem.so,libBugly.so替换为libBugly-msdk.so。2.1.2使用C++接口游戏MSDK V3版本不再提供源码给游戏编成so,而是将MSDK相关C++源码编为libMSDKSystem.so供游戏使用,避免源码被误操作发生异常。下面介绍从V2.1x升级到V3更新方法。1)按照2.1.1的说明更新jar包和so文件。2)删除v2.1x提供的msdk相关c++源码文件(.cpp .h),如图3)引用或复制MSDKLibrary/jni目录下的头文件到游戏相应目录,游戏调用MSDK接口时只#include “WGPlatform.h”即可4)修改Android.mk链接MSDK的核心so库,并引入MSDK头文件,参考:# 引入MSDK头文件,以下目录可改成游戏相应目录LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../MSDKLibrary/jni# 链接MSDK核心库,以下目录可改成游戏相应目录LOCAL_LDLIBS += -L$(LOCAL_PATH)/../../MSDKLibrary/libs/$(TARGET_ARCH_ABI) -lMSDKSystem-L$(LOCAL_PATH)/../../MSDKLibrary/libs/$(TARGET_ARCH_ABI) :将libMSDKSystem.so库所在的目录设为so库的链接路径。($(TARGET_ARCH_ABI) :表示游戏需要编绎的cpu abi,如armeabi-v7a, x86等目录)。-lMSDKSystem :表示链接libMSDKSystem.so库5)在Java层加载游戏so前先加载libMSDKSystemo.so(因为游戏需要调用MSDK接口,因此游戏依赖MSDK so,libMSDKSystemo.so需要先加载)。参考:public class MainActivity extends Activity { static { System.loadLibrary("MSDKSystem"); // MSDK核心so库 System.loadLibrary("WeGameSample"); // MSDKDemo的so库,类似于游戏so库 }}2.2资源文件更新2.2.1MSDK资源及配置文件更新1)复制(如重复则替换)MSDKLibrary中res目录到游戏相应目录。2)复制MSDKDemo中assets目录中的cert文件夹(https证书)、msdk_agreement.txt(实名同意协议)、msdkconfig.ini(MSDK开关配置文件)到游戏工程的相应目录(assets)。如果游戏已经存在assets/msdkconfig.ini文件,则无需替换。备注:1、从3.2.6版本开始已不再需要msdk_agreement.txt2、从3.2.6版本到3.2.17版本开始已不再需要cert文件夹3)若游戏原为2.16.0以下版本,需要升级配置文件msdkconfig.ini中域名配置方式变更,可参考MSDKDemo/assets/msdkconfig.ini,具体变动如下:#删除旧配置MSDK_URL=增加新配置(test测试环境,release正式环境)MSDK_ENV=test2.2.2配置文件AndroidManifest.xml变更1)增加权限声明<!-- 读取sdcard权限 --><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 2)增加两个MSDK相关Activity声明<!-- 兼容6.0及以上系统权限--><activity android:name="com.tencent.msdk.PermissionActivity" android:excludeFromRecents="true" android:exported="true" android:label="PermissionActivity" android:launchMode="singleTop" android:theme="@android:style/Theme.Translucent.NoTitleBar" android:screenOrientation="behind" android:taskAffinity="com.example.wegame.diff" ></activity><!-- msdk httpdns网络监听 --><receiverandroid:name="com.tencent.special.httpdns.Cache$ConnectReceiver" android:label="NetworkConnection" > <intent-filter> <action android:name=".conn.CONNECTIVITY_CHANGE"/> </intent-filter></receiver>3)3.0.8a及以上版本升级信鸽版本至3.1,注意使用下面的信鸽配置,替换原有的信鸽配置:<!-- 信鸽配置START --><!-- 【必须】 (2.30及以上版新增)展示通知的activity --><activityandroid:name="com.tencent.android.tpush.XGPushActivity"android:theme="@android:style/Theme.Translucent"android:exported="false" ><intent-filter><!-- 若使用AndroidStudio,请设置android:name="android.intent.action",否则如下设置--><action android:name="" /></intent-filter></activity><!-- 【必须】 信鸽receiver广播接收 --><receiverandroid:name="com.tencent.android.tpush.XGPushReceiver"android:process=":xg_service_v3" ><intent-filter android:priority="0x7fffffff" ><!-- 【必须】 信鸽SDK的内部广播 --><action android:name="com.tencent.android.tpush.action.SDK" /><action android:name="com.tencent.android.tpush.action.INTERNAL_PUSH_MESSAGE" /><!-- 【必须】 系统广播:网络切换 --><action android:name=".conn.CONNECTIVITY_CHANGE" /><!-- 【可选】 系统广播:开屏 --><action android:name="android.intent.action.USER_PRESENT" /><!-- 【可选】 一些常用的系统广播,增强信鸽service的复活机会,请根据需要选择。 --><action android:name="android.bluetooth.adapter.action.STATE_CHANGED" /><action android:name="android.intent.action.ACTION_POWER_CONNECTED" /><action android:name="android.intent.action.ACTION_POWER_DISCONNECTED" /></intent-filter><!-- 【可选】 usb相关的系统广播,增强信鸽service的复活机会,请根据需要添加 --><intent-filter android:priority="0x7fffffff" ><action android:name="android.intent.action.MEDIA_UNMOUNTED" /><action android:name="android.intent.action.MEDIA_REMOVED" /><action android:name="android.intent.action.MEDIA_CHECKING" /><action android:name="android.intent.action.MEDIA_EJECT" /><data android:scheme="file" /></intent-filter></receiver><!-- 【必须】 信鸽service --><serviceandroid:name="com.tencent.android.tpush.service.XGPushServiceV3"android:exported="true"android:persistent="true"android:process=":xg_service_v3" /><!-- 【必须】 【注意】authorities修改为 包名.AUTH_XGPUSH, 如demo的包名为:com.example.wegame--><providerandroid:name="com.tencent.android.tpush.XGPushProvider"android:authorities="com.example.wegame.AUTH_XGPUSH"android:exported="true"/><!-- 【必须】 【注意】authorities修改为 包名.TPUSH_PROVIDER, 如demo的包名为:com.example.wegame--><providerandroid:name="com.tencent.android.tpush.SettingsContentProvider"android:authorities="com.example.wegame.TPUSH_PROVIDER"android:exported="false" /><!-- 【必须】 【注意】authorities修改为 包名.TENCENT.MID.V3, 如demo的包名为:com.example.wegame--><providerandroid:name="com.tencent.mid.api.MidProvider"android:authorities="com.example.wegame.TENCENT.MID.V3"android:exported="true" ></provider>4)建议游戏的启动Activity launchMode设置为singleTask,如<!-- TODO MSDKDemo配置 START --><activity android:name="com.example.wegame.MainActivity" android:configChanges="orientation|screenSize|keyboardHidden" android:screenOrientation="sensor" android:launchMode="singleTask"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity><!-- TODO MSDKDemo配置 END -->详细说明:如果设置为singleTop,则游戏需要在启动Activity添加去重代码。以避免在有其他Activity覆盖在游戏Activity时,其他App拉起游戏而导致拉起重复的游戏Activity问题。如果设置为singleTask,可避免拉起重复游戏实例问题。这样设置会有个特点,如果游戏之上有其他Activity,此时切换到后台,再点游戏回到前台会销毁此Activity而直接呈现游戏Activity。综合评估,建议游戏侧设置为singleTask。2.3接口变更Android版本V3接口相对于2.18.1,为了和iOS接口保持一致,有4个接口参数类型有变更,有一个接口删除。如果使用到以下接口请注意修改,以防止编译报错:1.OnCrashExtDataNotify()的返回值类型由原来的char* 类型变为 std::vector类型2.接口参数类型由string改为unsigned char *,以保持双端一致:WGSetPushTag(string tag) WGSetPushTag(unsigned char *tag)WGDeletePushTag(string tag) WGDeletePushTag(unsigned char *tag)WGGetNoticeData(string scene) WGGetNoticeData(unsigned char *scene)3.去掉WGFeedback中带两个参数的接口,保留带一个参数的接口。主要是为了优化游戏侧调用,及使用游戏名做关键字进行查询时默认使用飞鹰上的游戏名,避免游戏自己传递游戏名造成混淆:int WGFeedback(unsigned char *game, unsigned char *txt);void WGFeedback(unsigned char *body);注意:C++的WGSetObserver等设置回调接口,必须要在Java的WGPlatform.Initialized()初始化MSDK后调用,否则会无效。V3版本加强了对登录态的校验,游戏启动后,需要调用WGLogin(ePlatform_None)进行自动登录,以确保登录态有效,否则可能会出现分享无权限等问题。2.4 v3.2.5手Q v2群接口新的群接口参考: HYPERLINK "; v3.2.5 腾讯视频vip启动特权腾讯视频启动特权接入说明:android:需要在AndroidManifest中添加以下配置<activityandroid:name="com.tencent.msdk.SchemeActivity"android:launchMode="singleTask">iOS:需要在plist中加入配置项:Identifier:tencentvideoURL Schemes:tencentlaunch100703379Role:Editor ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download