V3.3.255更新方法

1. 更新日志

Android

  1. HttpDns 更新至 0.0.70a

iOS

  1. HttpDns 更新至 0.0.7i

2. 更新指引

2.1 MSDK 内部变更事项

1)去除 TPNS 中华为、小米、vivo 厂商通道能力



V3.3.25更新方法

1. 更新日志

Android

  1. QIMEI 更新至 1.2.13.1
  2. 灯塔 更新至 4.2.80.6
  3. TBS 更新至 4.3.0.284_44184

iOS

  1. QIMEI 更新至 1.1.6.8
  2. 灯塔 更新至 4.2.75.3
  3. HttpDns 更新至 0.0.6

2. 更新指引

2.1 安卓 MSDKPolicy 插件权限说明页面支持配置化

msdk_permission_content.html 支持配置化。根据是否配置来决定权限说明页展示与否。不展示情况下,在用户同意协议后即可直接进入游戏。

2.1.1 配置说明

msdk_permission_content.html “置空” 或者 “被删除”,则不弹权限说明页面。用户在协议页面点击同意后,会直接进入游戏。

2.2 安卓更新灯塔 4.2.80.6 版本注意事项

此次升级,Qimei SDK 从灯塔 SDK 中独立出来;在 Android 端进行灯塔设置前需要先行设置 Qimei 特别字段,否则将影响灯塔信息上报。


QimeiSDK.getInstance("appkey1").getStrategy()
            .enableOAID(true)           // 关闭oaid采集,这里设置false
            .enableIMEI(true)           // 关闭imei采集,这里设置false,建议如用户授权,尽可能采集,便于复核问题
            .enableIMSI(true)           // 关闭imsi采集,这里设置false
            .enableAndroidId(true)      // 关闭android id采集,这里设置false,建议如用户授权,尽可能采集,便于复核问题
            .enableMAC(true)            // 关闭mac采集,这里设置false
            .enableCid(true);           // 关闭cid采集,这里设置false
            .enableProcessInfo(true)    // 关闭应用列表枚举,这里设置false,1.0.5以上版本有效
            .enableBuildModel(true)     // 关闭BUILD.MODEL采集,这里设置false,1.2.3以上版本有效

注意,MSDK 默认将上述字段全部设为 false,这样 MSDK 包括灯塔都不会去主动采集,而是依赖业务在用户同意后,业务自行采集可通过以下任意一种方式处理:

其中,通过 MSDK 设置特别字段流程如下:


	std::string sensitiveInfo = "{\"AndroidID\":\"xxx\", \"WiFiMacAddress\":\"xxx\", \"Imei\":\"xxx\", \"Model\":\"xxx\", \"Oaid\":\"xxx\", \"Imsi\":\"xxx\", \"Cid\":\"xxx\"}";  //json格式传入特别字段,不传入 Model 值会影响灯塔中台算法效果
	MSDKSensitive::SetSensitiveInfo(sensitiveInfo); //设置特别信息

可在灯塔实时联调看到相应字段信息,具体字段 key-value 请参考:https://doc.weixin.qq.com/sheet/e3_m_FQqjSTulsZmQ?scode=AJEAIQdfAAoYCcswsTAP0AIgaEACc&tab=p142s5

注意事项:

2.2.1 灯塔、Qimei SDK 插件化

MSDK 3.3.25 版本开始,灯塔、Qimei SDK 以插件化形式提供,支持灵活替换,相关 jar、so 包括:

2.3 安卓新增 Imei & Apn & AndroidID & QImei & QImei36 采集配置开关

新增 Imei & Apn & AndroidID & QImei & QImei36 字段在 msdkconfig.ini 中的本地配置开关以及代码接口控制开关,业务可按需自行配置这些字段是否允许采集;代码级别开关优先级高于 msdkconfig.ini 本地配置开关。

2.3.1 本地配置开关

在 msdkconfig.ini 文件中新增 MSDK_DENIED_COLLECT_LIST 配置项,业务侧可将不允许采集的字段配置在这个配置项中(多个字段使用英文逗号连接),不配置默认允许采集;不允许采集配置示例如下:


MSDK_DENIED_COLLECT_LIST = Imei,Apn,AndroidID,QImei,QImei36
2.3.2 代码接口开关

新增 WGSetCollectSensitiveInfo 接口控制特别字段的采集,该接口优先级高于 msdkconfig.ini 文件中的 MSDK_DENIED_COLLECT_LIST 配置项,接口说明如下:


    /**
    * 以json形式设置特别信息单字段开关,优先级小于总开关,目前支持设置AndroidID、Apn、Imei,QImei,QImei36
    * 参数示例{"AndroidID":true,"Apn":true,"Imei":false,"QImei":true,"QImei36":true}
    *
    */
    void WGSetCollectSensitiveInfo(const char *jsonInfo);

2.4 iOS 更新灯塔 4.2.75.3 版本注意事项

此次升级,Qimei SDK 从灯塔 SDK 中独立出来;MSDK 3.3.25 版本开始,灯塔、Qimei SDK 以插件化形式提供,支持灵活替换;使用时除添加 MSDKBeacon/MSDKBeacon.framework 外还需添加 MSDKBeacon/Beacon 目录下其他 framework。

2.5 MSDK 内部变更事项

1)安卓内置浏览器优化



V3.3.23更新方法

1. 更新日志

Android

  1. HttpDns更新至0.0.63
  2. TPNS更新至1.3.1.1
  3. 应用宝省流量更新至3.0.9.3071

iOS

2. 更新指引

2.1 新增网关取号网络切换区分运营商字段返回

取号服务H5&Native桥接协议
2.1.1 引入MSDK js

https://img.ssl.msdk.qq.com/wiki/msdkJsAdapter.js
2.1.2 封装json参数

var requestJson = '{"MsdkMethod":"WGSendGetPhoneNumberRequest","open_url":"https://xxx","port":443,"carrier":1}'

注意事项:

2.1.3 调用MSDK js接口msdkCall

msdkCall('WGSendGetPhoneNumberRequest', requestJson)

注意事项:

2.1.4 设置js回调

function msdkCallback(data) {

	}
	msdkAddNativeCallbackObserver(msdkCallback)

注意事项:

2.2 安卓更新TPNS 1.3.1.1版本注意事项

升级TPNS主包和厂商通道TPNS(除oppo)包到1.3.1.1(oppo仍为1.1.6.3)。

Manifest 配置文件有内容变更,如下:

2.2.1 新增activity节点

<activity
        android:name="com.tencent.android.tpush.InnerTpnsActivity"
        android:exported="false"
        android:launchMode="singleInstance"
        android:theme="@android:style/Theme.Translucent.NoTitleBar">
        <intent-filter>
			<!-- 【必须】 其中${applicationId}修改为应用的包名-->
            <action android:name="${applicationId}.OPEN_TPNS_ACTIVITY_V2" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
        <intent-filter>
            <data
                 <!-- 【必须】 其中${applicationId}修改为应用的包名-->
                android:host="${applicationId}"
                android:scheme="stpns" />

            <action android:name="android.intent.action.VIEW" />

            <category android:name="android.intent.category.BROWSABLE" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
        <intent-filter>
            <action android:name="android.intent.action" />
        </intent-filter>
    </activity>

注意事项:

2.2.2 替换XGPushReceiver节点内容

<receiver
    android:name="com.tencent.android.tpush.XGPushReceiver"
    android:exported="false"
    android:process=":xg_vip_service">

    <intent-filter android:priority="0x7fffffff">

        <!-- 【必须】 信鸽SDK的内部广播 -->
        <action android:name="com.tencent.android.xg.vip.action.SDK" />
        <action android:name="com.tencent.android.xg.vip.action.INTERNAL_PUSH_MESSAGE" />
        <action android:name="com.tencent.android.xg.vip.action.ACTION_SDK_KEEPALIVE" />
    </intent-filter>

</receiver>

2.3 MSDK内部变更事项

1)嵌入式浏览器新增通过JS接口关闭工具栏逻辑

2)iOS 15下内置浏览器逻辑优化



V3.3.22更新方法

1. 更新日志

Android

  1. TBS更新至4.3.0.242_44142
  2. 手Q互联openSDK更新至3.5.8
  3. 应用宝省流量更新至3.0.9.3061

iOS

  1. TPNS更新至1.3.4.1
  2. 手Q互联openSDK更新至3.5.8

2. 更新指引

2.1 微信新增支持视频号授权

2.1.1 功能描述

MSDK封装视频号授权,通过调用WGLogin接口,传入 ePlatform.ePlatform_WeixinVideoLive,在MSDK的回调中获取tdiAuthBuffer,用于后续的直播登录。

2.1.2 示例代码

// 传入 ePlatform.ePlatform_WeixinVideoLive
WGPlatform.Instance.WGLogin(ePlatform.ePlatform_WeixinVideoLive);
返回结果:

{
	"MsdkMethod": "OnLoginNotify",
	"_flag": 0,
	"_desc": "",
	"_platform": 8,
	"_open_id": "",
	"_user_id": "",
	"_pf": "",
	"_pf_key": "",
	"_token": [],
	"_prajna_ext": "",
	"_extra_json": "{\"tdiAuthBase64\":\"Cp4BMV9CZ0FBYTRpb3RxYVA3aUgwQ1AzejkzRlZWY0Y4OG55NmZPZlZtaXh3ZUZNVHMwYVdJK0FF\\nVFpQR1c1SnpKbDdySWpnSnV6MEJRL2EyUXlQQlJWMG0xejNlTzRTR25ZN1VvSmt4N01idmxyemVp\\nOGNRU21lSnkxZGt6M0JubTFsNkgxZGJIMWVYRWNMMDdJa3dlYzJQMVZCUmhnPT0SF2lsaW5rYXBw\\nXzA2MDAwMDNiNzhjMTc2\\n\"}"
}

注意事项:

2.2 iOS新增开关配置接口

新增开关配置接口,在用户同意用户协议条款之后,业务可调用该接口开启MSDK以及MSDK所包含的第三方组件对相关信息的获取;在开关开启之前,MSDK不会获取相关信息。

2.2.1 接口声明

c++接口:
/*
 * 设置是否允许获取相关信息
 */
void WGSetCouldCollectSensitiveInfo(bool couldCollect);

注意事项:

2.3 安卓更新TBS 44142版本注意事项

2.4 安卓更新TPNS默认启动配置

3.3.22版本之前,TPNS存在自启问题。当前,已经将自启相关配置去除,带来的影响是,TPNS Android端不能自启。

配置已变更为:


<receiver
	android:name="com.tencent.android.tpush.XGPushReceiver"
	android:process=":xg_vip_service">
	<intent-filter android:priority="0x7fffffff">
	<!-- 【必须】 腾讯移动推送SDK的内部广播 -->
		<action android:name="com.tencent.android.xg.vip.action.SDK" />
		<action android:name="com.tencent.android.xg.vip.action.INTERNAL_PUSH_MESSAGE" />
		<action android:name="com.tencent.android.xg.vip.action.ACTION_SDK_KEEPALIVE" />
	</intent-filter>
</receiver>

如果需要自启功能,可将配置恢复,如下:


<receiver
	android:name="com.tencent.android.tpush.XGPushReceiver"
	android:process=":xg_vip_service">
	<intent-filter android:priority="0x7fffffff">
		<!-- 【必须】 腾讯移动推送SDK的内部广播 -->
		<action android:name="com.tencent.android.xg.vip.action.SDK" />
		<action android:name="com.tencent.android.xg.vip.action.INTERNAL_PUSH_MESSAGE" />
		<action android:name="com.tencent.android.xg.vip.action.ACTION_SDK_KEEPALIVE" />
		<!-- 【可选】 系统广播:网络切换 -->
		<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
		<!-- 【可选】 系统广播:开屏 -->
		<action android:name="android.intent.action.USER_PRESENT" />
		<!-- 【可选】 一些常用的系统广播,增强腾讯移动推送service的复活机会,请根据需要选择。当然,您也可以添加App自定义的一些广播让启动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>
</receiver>

如果接入小米通道,请删除NetworkStatusReceiver中对应的intent-filter配置:


<!-- 如果您有集成小米通道,手动集成小米通道时,将该NetworkStatusReceiver对应的intent-filter删除 -->
<receiver
   android:name="com.xiaomi.push.service.receivers.NetworkStatusReceiver"
   android:exported="true" >
   <intent-filter tools:node="remove">
       <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />

       <category android:name="android.intent.category.DEFAULT" />
   </intent-filter>
</receiver>

2.5 安卓更新应用宝省流量SDK 3.0.9.3061版本注意事项

对于msdkconfig.ini中配置SAVE_UPDATE为true的游戏需要关注该部分内容。

2.5.1 Android 10软件包可见性配置

对于target 29及以上的游戏,需要为应用宝省流量SDK配置query,如果没有配置,则出现返回提示下载安装应用宝问题,示例如下:


<queries>
	...
	<package android:name="com.tencent.android.qqdownloader" />
</queries>
2.5.2 应用宝省流量SDK插件化和移除

MSDK 3.3.22版本开始将省流量SDK以插件化形式提供,支持灵活的替换和移除,相关jar包括:

对于不需要省流量SDK的游戏,可以移除上述jar,同时修改SAVE_UPDATE为false。

2.6 MSDK内部变更事项

1)双端开关配置接口优化

2)安卓12适配

3)iOS新增设备型号



V3.3.21更新方法

1. 更新日志

Android

  1. 【重要】 微信openSDK更新至6.8.0(适配Android 11)
  2. 灯塔更新至4.1.24.3
  3. TPNS更新至1.2.7.1
  4. Bugly更新至3.4.41
  5. TBS更新至4.3.0.185_44085
  6. 手Q互联openSDK更新至3.5.7

iOS

  1. 灯塔更新至4.1.36(解决iOS 15适配问题)
  2. TGPA更新至1.1.1

2. 更新指引

2.1 新增授权登录回调中微信授权scope字段透传能力

授权登录回调OnLoginNotify中,新增微信授权scope字段透传,业务侧可根据该字段判断用户是否有授权关系链权限;scope字段在LoginRet的extra_json中,示例如下:


用户授权关系链权限的scope样式:
loginRet.extra_json = "{\"scope\":\"snsapi_userinfo,snsapi_friend,snsapi_message\"}";

用户未授权关系链权限的scope样式:
loginRet.extra_json = "{\"scope\":\"snsapi_userinfo,snsapi_message\"}";

注意事项:

(1)微信平台需向微信(企业微信 wxgame)平台侧申请开通。

(2)QQ 平台当前不再支持该特性配置,请关注后续平台版本更新。

2.2 新增关系链回调接口中用户未授权错误码

调用客户端关系链接口WGQueryQQGameFriendsInfo或WGQueryWXGameFriendsInfo时,若用户未授权关系链权限,则在回调接口OnRelationNotify中,relationRet.flag = eFlag_UnPermission(-9)。

2.3 新增拉起QQ小程序能力

2.3.1 接口声明

/*
 * 启动QQ小程序
 * @param miniProgramAppid 必填,小程序的AppID(注:必须在QQ互联平台中,将该小程序与分享的App绑定)
 * @param miniProgramPath  非必填,小程序的展示路径,不填展示默认小程序首页
 * @param type             非必填,小程序的类型,默认正式版(ProgramType_Release)
 */
void WGLaunchQQMiniApp(const unsigned char *miniProgramAppid,
                       const unsigned char *miniProgramPath,
                       const eMiniProgramType &type = ProgramType_Release);

注意事项:

2.4 取消QQ游戏中心启动的快速登录能力

为对抗租号平台,从MSDK 3.3.21版本屏蔽QQ游戏中心启动游戏时的快速登录能力,游戏未登录状态下从QQ游戏中心启动将无法直接登录成功进入游戏;游戏中心启动异账号场景相关操作指引(游戏评估处理):


1) 游戏未登录:保持在登录页或调用QQ登录拉起QQ授权
2) 游戏已登录:
    2.1) 无异账号:等待MSDK登录回调,登录成功则可进游戏
    2.2) 有异账号:
        2.2.1) 用户选择本地账号:等待MSDK登录回调,登录成功则可进游戏
        2.2.2) 用户选择拉起账号:退回登录页或调用QQ登录拉起QQ授权页

注意事项:

2.5 Android 新增内部策略优化开放接口

新增内部策略优化开放接口,在用户同意用户协议条款之后,业务可调用该接口开启MSDK以及MSDK所包含的第三方组件(目前支持该能力的有灯塔和TBS组件)对相关信息的获取;在开关开启之前,MSDK不会获取相关信息。

2.5.1 接口声明

java接口:
MSDKSensitive.setCouldCollectSensitiveInfo(true);

c++接口:
/*
 * 设置是否允许获取相关信息
 */
void WGSetCouldCollectSensitiveInfo(bool couldCollect);

注意事项:

2.6 Android 新增设置信息字段接口

新增设置信息字段接口,在用户同意用户协议条款之后,业务可自行获取相关信息字段,调用该接口设置到MSDK以及MSDK所包含的第三方组件(目前支持该能力的有灯塔组件)。

2.6.1 接口声明

java接口:
MSDKSensitive.setSensitiveInfo("{\"AndroidID\":\"xxx\", \"WiFiMacAddress\":\"xxx\", \"Imei\":\"xxx\"}");

c++接口:
/*
 * 以json形式设置信息字段至各个组件SDK,目前支持{"AndroidID":"xxx","WiFiMacAddress":"xxx","Imei":"xxx"}
 */
void WGSetSensitiveInfo(const char *jsonInfo);

注意事项:

2.7 Android 修改MSDKPolicy插件配置文案及重新弹窗逻辑

MSDKPolicy 已经按法务要求更新了协议,新增《第三方共享清单》和链接。由于协议发生变更,所以必须加入协议改动强制弹出逻辑。在新版本发布后,应用启动时重新弹出授权协议。升级详情参考:MSDK 游戏相关问题说明-1.1.4 升级步骤

2.8 Android 新增WebView视频播放全屏功能

2.8.1 功能描述

MSDK WebView中,通过点击网页中播放器全屏按钮能够实现视频全屏播放功能。该功能目前仅限Android端,且接入了MSDK WebView功能。

2.8.2 实现原理

与普通的WebView类似,通过继承ChromeClient类,并重写onShowCustomView和onHideCustomeView来实现。当有onShowCustomView请求时,添加这个View到顶层,保存当前屏幕状态,并设置屏幕为横屏、沉浸式;当onHideCustomeView请求过来,则将前面添加到顶层的View移除,并恢复原来的屏幕状态。

2.8.3 示例代码

<p id="android_video">Android视频播放全屏验证:
	<video width="305" height="305" controls="controls" preload="none" >
		<source src="files/video.mp4" type="video/mp4">
	</video>
</p>

注意事项:

2.9 MSDK内部变更事项

1)优化MSDK Andorid内部策略优化

2)优化Android OnResume时Bugly模块上报逻辑

3)优化iOS libcurl裸符号问题

4)新增Android内置浏览器第三方cookies写入逻辑

5)新增MSDKPolicy插件对MSDK内部策略优化开放接口调用能力

6)新增MSDKPolicy插件内容变化强制重新弹窗能力

2.10 Unity、UE4引擎延迟初始化说明

游戏引擎可以在启动前进行协议弹窗,例如接入MSDKPolicy组件,也可以在启动后,游戏内第一时间进行协议弹窗。如果是第2种情况,一般是MSDK先于游戏启动并初始化,但由于MSDK此时还未知内部策略优化开放接口的开关的状态,默认为关闭状态,导致启动、初始化后不能获取必要的相关信息,导致MSDK Android端与相关信息绑定的登录态失效,引起重新登录问题。

以下指引如何进行MSDK的延迟初始化。

2.10.1 步骤1

将引擎启动前的MSDK代码Ctrl+X出来,这个过程可能涉及到原生代码,引擎相关代码。原生代码主要是GameActivity(不同游戏可能不同,代表游戏主Activity)启动过程的从onCreate到onResume之间的代码,涉及的生命周期方法包括:onCreate、onStart、onResume、以及onPause,onStop,onRestart,onDestroy。

从onCreate方法中,将初始化代码抽取出来,可以作为GameActivity的成员方法:


bool isInit = false;
public void delayInit(){
	WGPlatform.Initialized(this, baseInfo);
	// 设置拉起QQ时候需要用户授权的项
   WGPlatform.WGSetPermission(WGQZonePermissions.eOPEN_ALL);
   WGPlatform.handleCallback(this.getIntent());
   isInit = true;
}
2.10.2 步骤2

将生命周期中其它关于MSDK的调用包裹到isInit标记中,例如:


// TODO GAME 游戏需要集成此方法并调用WGPlatform.onRestart()
    @Override
    protected void onRestart() {
        MLog.i("onRestart");
        super.onRestart();
        if (isInit) {
            WGPlatform.onRestart();
        }
    }
    @Override
    protected void onResume() {
        MLog.i("onResume");
        super.onResume();
        if (isInit) {
            WGPlatform.onResume();
        }
    }
    @Override
    protected void onPause() {
        MLog.i("onPause");
        super.onPause();
        if (isInit) {
            WGPlatform.onPause();
        }
    }
    @Override
    protected void onStop() {
        MLog.i("onStop");
        super.onStop();
        if (isInit){
            WGPlatform.onStop();
        }
    }
	@Override
   	protected void onDestroy() {
        MLog.i("onDestroy");
        super.onDestroy();
        if (isInit){
            WGPlatform.onDestory(this);
        }
    }
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        MLog.i("onActivityResult");
        super.onActivityResult(requestCode, resultCode, data);
        if (isInit){
            WGPlatform.onActivityResult(requestCode, resultCode, data);
        }
    }
     @Override
    protected void onNewIntent(Intent intent) {
        MLog.i("onNewIntent");
        super.onNewIntent(intent);
        // TODO GAME 处理游戏被拉起的情况
        // launchActivity的onCreat()和onNewIntent()中必须调用
        // WGPlatformPrior.handleCallback()。否则会造成微信登录无回调
        MLog.i(MLog.intentToString(intent));
        if (isInit){
            WGPlatform.handleCallback(intent);
        }
    }
2.10.3 步骤3

引擎在内部策略优化后,调用delayInit方法,不同引擎,请使用引擎提供的方法反射调用。如果是Unity,参考示例如下:


AndroidJavaClass javaClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject javaObject = javaClass.GetStatic("currentActivity");
javaObject.Call("delayInit");

对于UE4,建议使用Java方法直接调用。

2.10.4 步骤4

注册Observer,对于不同引擎,初始化(delayInit)MSDK后,继续设置相应的Observer。

注意事项:

2.11 微信 OpenSDK 适配 iOS 15 系统说明

Xcode13.0及以上版本编译出的App在iOS 15.0及以上系统上被限制了URL Scheme query的数量为50。对于plist中LSApplicationQueriesSchemes配置的scheme数量超过50的App,可能会导致:

注意事项:

使用 13.0 及以上版本 Xcode 编译 App 的开发者需要适配以确保微信 OpenSDK 的正常使用。

2.11.1 背景

从 iOS 9 开始,iOS 支持在工程 plist中配置LSApplicationQueriesSchemes。

将其他 App 的 scheme 配置到 `LSApplicationQueriesScheme` 中后,可以通过以下代码判断是否可以通过 scheme 跳转对于的 App。


BOOL ret = [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"weixin://"]];

在接入微信 OpenSDK 时,微信接入文档有要求在LSApplicationQueriesScheme添加 weixin 和 weixinULAPI

2.11.2 iOS 15 系统相关变更

和苹果确认,在iOS 15系统上,使用Xcode 13编译出的App, LSApplicationQueriesSchemes的数量会限制为50个。

第 50 个之后的 scheme 配置会不生效,以下代码会返回 NO。


BOOL ret = [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"otherAppScheme://"]]; 
2.11.3 微信 OpenSDK 适配建议

如果LSApplicationQueriesSchemes配置的scheme数量小于50,或者 "weixin" 和 "weixinULAPI" 这两个sheme在前50,无需适配。

使用Xcode 12及以下版本Xcode编译的App目前暂不需要适配。

确保 "weixin" 和 "weixinULAPI" 配置在 LSApplicationQueriesSchemes 的前 50。否则以下接口可能会在 iOS 15 系统上返回错误结果或者表现异常:

注意事项:

V3.3.191更新方法

1. 更新日志

Android

  1. TBS更新至44066
  2. 微信openSDK更新至6.7.5
  3. 微信opensdk更新至6.6.23
  4. Bugly更新至SDK3.3.9 & NDK3.9.0
  5. 灯塔更新至4.1.22.3

iOS

  1. 微信openSDK更新至1.9.1
  2. Bugly更新至2.5.9
  3. 灯塔更新至4.1.29.7
  4. TGPA更新至1.0.9(解决多线程Crash问题)
  5. 腾讯移动推送(TPNS)更新至1.3.0.3

2. 更新指引

2.1 Android

2.1.1 新增一键分享到微信视频号接口

支持一键分享用户在游戏内生成的视频到微信视频号。

2.1.1.1 接口声明

/**
* videoParams:视频信息,必填
* messageExt:拓展字段,选填,携带额外信息,当前版本暂未使用
**/
void WGSendToWXChannelShareVideo(VideoParams &videoParams, const unsigned char *messageExt);

注意事项:

2.1.2 新增分享到微信状态接口

分享状态到微信,成功之后,状态相关信息将显示在微信->我的个人头像下面,点击状态下面应用名称将自动跳转到指定页面。当前版本MSDK支持分享图片状态到微信。

2.1.2.1 接口声明

/**
*
* 分享图片信息至微信状态
* 参数说明:
* stateId:状态ID,选填,不同的状态ID会显示不同的Icon
* stateTitle:状态标题,选填,限制32 个字符以内
* imageParams:图片信息,必填,图片比例为9:16
* 此struct在android、ios上对应的字段不同。android需要填写图片路径:android_imagePath。
* jumpUrl:跳转URL,必填,点击来源小尾巴后跳转的页面url,游戏先支持跳到“微信游戏圈”页面
*
*/
void WGSendToWXStateWithPhoto(const unsigned char *stateId,
                              const unsigned char *stateTitle,
                              ImageParams &imageParams,
                              const unsigned char *jumpUrl);

其它语言接口类似,对于游戏,stateId可以填写1019,jumpUrl为游戏圈地址,title设置后将作为编辑也默认值,跳转到微信之后,除了jumpUrl,其它均能够自主修改。

注意事项:

2.1.3 新增动态关闭Bugly监控接口

新增动态关闭Bugly监控接口,支持游戏自定义动态开启/关闭监控。有些场景下,游戏不需要崩溃上报,如:有些游戏在杀进程时触发的上报不想上报到bugly;此时可以调用该接口关闭崩溃上报,其他bugly功能不影响;重新启动应用后再触发的崩溃会正常上报。

2.1.3.1 接口声明

/**
* 关闭bugly上报 
**/
    public void WGCloseCrashReport();

2.1.4 Bugly支持上报至游戏配置域名

支持自定义Server Url功能,可用于Bugly到CrashSight的迁移。

2.1.4.1 配置项

Bugly Server Url在MSDKV3通过配置项进行自定义,相应配置项:


Android端Bugly自定义URL配置,msdkconfig.ini中
BUGLY_REPORT_URL_ANDROID={url}

示例:


Android端配置,在assets/msdkconfig.ini文件中,添加如下:
BUGLY_REPORT_URL_ANDROID = https://test-astat.bugly.qcloud.com/rqd/async
2.1.4.2 管理端验证

触发崩溃后或者Bugly日志后,管理端验证请到 crashsight.qq.com 进行验证。

注意事项:

2.1.5 新增JavaScript查询应用是否安装接口

在MSDK提供的浏览器中打开网页,查询一个安装包是否安装。适用于查询微信、QQ等应用程序是否安装,支持Android、iOS。通过js接口对外提供,需要运行在MSDK的WebView中才能生效,包括内置浏览器和嵌入式浏览器。

注:Android端,如果App的Target SDK为11,且运行在Android 11设备上,需要声明query才能正常使用该功能。

2.1.5.1 接口声明

与MSDK其它js功能类似,判断应用安装接口遵循相同的js调用协议。参考如下代码实现js判断应用是否安装:


// 判断app是否安装
function msdkIsAppInstalled(target, callback){
    if (isiOS()) {
        params = '{"packageUrl":"' + target + '"}';
        msdkiOSHandler('isAppInstalled', params, callback);

    } else {
        params = '{"MsdkMethod":"isAppInstalled","package":"' + target + '"}';
        var result = prompt(params);
        if(typeof callback == 'function'){
            callback(result);
        }
    }
}   

MsdkMethod 填 isAppInstalled, 如果是 iOS,使用 packageUrl,如果是 Android,使用 package

callback,回调函数,参数为字符串,true表示安装;flase表示未安装;其它表示查询失败。

2.1.5.2 权限配置(Android端,Target API等于30,游戏端处理)

<queries>
    <package android:name="com.tencent.mm" />
    <package android:name="com.tencent.mobileqq" />
</queries>
2.1.5.3 示例代码

判断QQ是否安装


function demoIsQQInstalled(){
	if(isiOS()){
		msdkIsAppInstalled("mqq://", function(resp){
			alert(resp);
		});
	}else{
		msdkIsAppInstalled("com.tencent.mobileqq", function(resp){
			alert(resp);
		});
	}  
}

判断微信是否安装


function demoIsWXInstalled(){
	if(isiOS()){
		msdkIsAppInstalled("weixin://", function(resp){
			alert(resp);
		});
	}else{
		msdkIsAppInstalled("com.tencent.mm", function(resp){
			alert(resp);
		});
	}  
}

注意事项:

2.1.6 MSDK内部变更事项

1.调用setApplicationIconBadgeNumber本地调整应用的消息角标后,调用setBadge接口上报当前的角标到TPNS服务器。

2.webview handMessage在onDestroy或者init清空view的同时清空消息列表中的内容,同时做空保护。

3.更新MSDKPolicy插件文案:“权限请求” 修改为 “权限说明”、删除 “(必选)” 文案、默认配置中去除:存储权限、电话权限样例。

4.禁用webview的字体缩放解决了字体缩放导致的H5页面布局的问题。

注意事项:

2.2 iOS

2.2.1 新增一键分享到微信视频号接口

支持一键分享用户在游戏内生成的视频到微信视频号。

2.2.1.1 接口声明

/**
* videoParams:视频信息,必填
* messageExt:拓展字段,选填,携带额外信息,当前版本暂未使用
**/
void WGSendToWXChannelShareVideo(VideoParams &videoParams, const unsigned char *messageExt);

注意事项:

2.2.2 新增分享到微信状态接口

分享状态到微信,成功之后,状态相关信息将显示在微信->我的个人头像下面,点击状态下面应用名称将自动跳转到指定页面。当前版本MSDK支持分享图片状态到微信。

2.2.2.1 接口声明

/**
*
* 分享图片信息至微信状态
* 参数说明:
* stateId:状态ID,选填,不同的状态ID会显示不同的Icon
* stateTitle:状态标题,选填,限制32 个字符以内
* imageParams:图片信息,必填,图片比例为9:16
* 图片信息的struct imageParams在android、ios上对应的字段不同;ios需要自行读取填写图片数据ios_imageData和图片数据长度ios_imageDataLen
* jumpUrl:跳转URL,必填,点击来源小尾巴后跳转的页面url,游戏先支持跳到“微信游戏圈”页面
*
*/
void WGSendToWXStateWithPhoto(const unsigned char *stateId,
                              const unsigned char *stateTitle,
                              ImageParams &imageParams,
                              const unsigned char *jumpUrl);

其它语言接口类似,对于游戏,stateId可以填写1019,jumpUrl为游戏圈地址,title设置后将作为编辑也默认值,跳转到微信之后,除了jumpUrl,其它均能够自主修改。

注意事项:

2.2.3 新增动态关闭Bugly监控接口

新增动态关闭Bugly监控接口,支持游戏自定义动态开启/关闭监控。有些场景下,游戏不需要崩溃上报,如:有些游戏在杀进程时触发的上报不想上报到bugly;此时可以调用该接口关闭崩溃上报,其他bugly功能不影响;重新启动应用后再触发的崩溃会正常上报。

2.2.3.1 接口声明

/**
* 关闭bugly上报 
**/
    public void WGCloseCrashReport();

2.2.4 Bugly支持上报至游戏配置域名

支持自定义Server Url功能,可用于Bugly到CrashSight的迁移。

2.2.4.1 配置项

Bugly Server Url在MSDKV3通过配置项进行自定义,相应配置项:


iOS端Bugly自定义URL配置,Info.plist中
BUGLY_REPORT_URL_IOS={url}

示例:


iOS端配置,在Info.plist文件中,添加如下:

<dict>
...
	<key>BUGLY_REPORT_URL_IOS</key>
	<string>https://pre.bugly.cros.wr.pvp.net/rqd/sync</string>
...
</dict>

2.2.4.2 管理端验证

触发崩溃后或者Bugly日志后,管理端验证请到 crashsight.qq.com 进行验证。

注意事项:

2.2.5 新增JavaScript查询应用是否安装接口

在MSDK提供的浏览器中打开网页,查询一个安装包是否安装。适用于查询微信、QQ等应用程序是否安装,支持Android、iOS。通过js接口对外提供,需要运行在MSDK的WebView中才能生效,包括内置浏览器和嵌入式浏览器。

2.2.5.1 接口声明

与MSDK其它js功能类似,判断应用安装接口遵循相同的js调用协议。参考如下代码实现js判断应用是否安装:


// 判断app是否安装
function msdkIsAppInstalled(target, callback){
    if (isiOS()) {
        params = '{"packageUrl":"' + target + '"}';
        msdkiOSHandler('isAppInstalled', params, callback);

    } else {
        params = '{"MsdkMethod":"isAppInstalled","package":"' + target + '"}';
        var result = prompt(params);
        if(typeof callback == 'function'){
            callback(result);
        }
    }
}   

MsdkMethod 填 isAppInstalled, 如果是 iOS,使用 packageUrl,如果是 Android,使用 package

callback,回调函数,参数为字符串,true表示安装;flase表示未安装;其它表示查询失败。

2.2.5.2 示例代码

判断QQ是否安装


function demoIsQQInstalled(){
	if(isiOS()){
		msdkIsAppInstalled("mqq://", function(resp){
			alert(resp);
		});
	}else{
		msdkIsAppInstalled("com.tencent.mobileqq", function(resp){
			alert(resp);
		});
	}  
}  

判断微信是否安装


function demoIsWXInstalled(){
	if(isiOS()){
		msdkIsAppInstalled("weixin://", function(resp){
			alert(resp);
		});
	}else{
		msdkIsAppInstalled("com.tencent.mm", function(resp){
			alert(resp);
		});
	}  
}

注意事项:

2.2.6 新增灯塔及Bugly的日志开关

添加调试开关,可以用于打开、关闭iOS端Bugly和灯塔的调试开关。如果该配置项打开,则Bugly、Beacon将能够打印更多调试相关的日志。注意,Bugly和Beacon共用一个开关项,该功能与Android保持一致。

2.2.6.1 配置项STAT_LOG

iOS STAT_LOG开关配置在info.plist中,与其他MSDK配置项保持一致。Android端请参考msdkconfig.ini。


STAT_LOG, BOOL, 打开、关闭Bugly和Beacon调试开关

示例:


<dict>
...
	<key>STAT_LOG</key>
	<false/>
...
</dict>

默认不配置和false。

注意事项:

2.2.7 MSDK内部变更事项

1.修复了ios14系统下请求授权和gps数据时,在用户未决定时释放了CLLocationManager对象导致弹窗消失的现象。

2.调用setApplicationIconBadgeNumber本地调整应用的消息角标后,调用setBadge接口上报当前的角标到TPNS服务器。

3.重写UIViewController方法修复webview的屏幕边缘手势操作的系统响应和APP响应冲突。

4.caid为空或者获取不到时不覆盖当前值。

5.修复了MSDK3.3.18版本在Unity 2019中出现的bug,解决了内置浏览器跳转至QQ再返回时出现异常的问题。

6.修复日志量较大时产生崩溃上报的问题。

2.3 Unity

Unity版本变更包含所有iOS、Android版本的变更,可参考iOS、Android版本的变更描述,客户端接口和iOS、Android版本略有差异,参考以下描述。

2.3.1 新增一键分享到微信视频号接口

支持一键分享用户在游戏内生成的视频到微信视频号。

2.3.1.1 接口声明

/**
* videoParams:视频信息,必填
* messageExt:拓展字段,选填,携带额外信息,当前版本暂未使用
*
*/
void WGSendToWXChannelShareVideo(VideoParams videoParams, string messageExt);

注意事项:

2.3.2 新增分享到微信状态接口

分享状态到微信,成功之后,状态相关信息将显示在微信->我的个人头像下面,点击状态下面应用名称将自动跳转到指定页面。当前版本MSDK支持分享图片状态到微信。

2.3.2.1 接口声明

/**
*
* 分享图片信息至微信状态
* 参数说明:
* stateId:状态ID,选填,不同的状态ID会显示不同的Icon
* stateTitle:状态标题,选填,限制32 个字符以内
* imageParams:图片信息,必填,图片比例为9:16
* 此struct在android、ios上对应的字段不同。android需要填写图片路径:android_imagePath,ios需要自行读取填写图片数据ios_imageData和图片数据长度ios_imageDataLen
* jumpUrl:跳转URL,必填,点击来源小尾巴后跳转的页面url,游戏先支持跳到“微信游戏圈”页面
*
*/
void WGSendToWXStateWithPhoto(string stateId,
                                      string stateTitle,
                                      ImageParams imageParams,
                                      string jumpUrl);

其它语言接口类似,对于游戏,stateId可以填写1019,jumpUrl为游戏圈地址,title设置后将作为编辑也默认值,跳转到微信之后,除了jumpUrl,其它均能够自主修改。

注意事项:

2.3.3 新增动态关闭Bugly监控接口

新增动态关闭Bugly监控接口,支持游戏自定义动态开启/关闭监控。有些场景下,游戏不需要崩溃上报,如:有些游戏在杀进程时触发的上报不想上报到bugly;此时可以调用该接口关闭崩溃上报,其他bugly功能不影响;重新启动应用后再触发的崩溃会正常上报。

2.3.3.1 接口声明

/**
* 关闭bugly上报 
**/
void WGCloseCrashReport();

V3.3.18更新方法

1. 更新日志

Android

  1. 手Q互联opensdk更新至3.5.3
  2. 手Q分享接口新增tagname、messageExt扩展统计参数
  3. 微信opensdk更新至6.6.23
  4. 灯塔SDK更新至V4.1.22,新增Qimei36上报
  5. 信鸽TPNS更新至1.2.2.4
  6. TBS更新版本至43993
  7. Bugly 回调新增携带堆栈信息
  8. 优化MSDKPolicy协议流程(新增权限弹出展示场景)

iOS

  1. 更新 TGPA SDK 版本到 1.0.9
  2. 手Q互联opensdk更新至3.5.3
  3. 手Q分享接口新增tagname、messageExt扩展统计参数
  4. 微信opensdk 更新至iOS1.8.9
  5. 更新Bugly SDK至2.5.71,回调新增携带堆栈信息
  6. 信鸽新增推送抵达统计服务库

2. 更新指引

2.1 灯塔相关变更升级指引

2.1.1 配置项默认值变更

Android MSDK关于灯塔的BEACON_SENSOR_ENABLE默认配置项由原来的关闭设置为开启状态,用于开启beacon_id的上报,以及qimei36权限的开通。

注:业务端暂不需要关注,如果需要开通qimei36,请确认该开关为开启状态。

2.1.2 Android端新增qimei36上报,需要业务主动申请开通

V3.1.18版本开始支持qimei36上报功能,默认为空,需要业务联系灯塔开通,开通指引参考:https://iwiki.woa.com/pages/viewpage.action?pageId=417707553

对于AppKey,Android端一般为QQ号,iOS端为i+QQ号

2.2 信鸽相关变更升级指引

V3.3.18版本开始,信鸽推送被单独抽离成 TPNSSDKHWPushSDK 插件提供。

注:

2.2.1 Android 版本引入说明

如果业务侧有接入TPNSSDK和HWPushSDK插件的需求,可直接将TPNSSDK和HWPushSDK插件完整的copy到与MSDKLibrary同级目录中,并在 build.gradle 、settings,gradle中添加如下引用(与MSDKLibrary同级);反之则删除引用和插件。

compile project(':TPNSSDK')
compile project(':HWPushSDK')
include ':HWPushSDK'
include ':TPNSSDK'

2.2.2 Unity 版本引入说明

Unity版本默认使用TPNSSDK和HWPushSDK,如果不使用的话,可以删除TPNSSDK和HWPushSDK插件,并注释如下代码(路径:\Assets\Msdk\Editor\Scripts\Deploy\DeployAndroid.cs):

/* 7) TPNSSDK */
DeployTPNSSDK();

/* 8) HWPushSDK */
DeployHWPushSDK();

Unity 64 位打包指引已更新,指引文档地址:\Assets\Msdk\Editor\Librarys\Android3.2\Gradle

2.3 手Q分享相关变更升级指引

V3.3.18版本开始,WGSendToQQ、WGSendToQQWithPhoto、WGSendToQQWithArk 三个接口新增 tagname、messageExt 两个参数,注意处理,详情可参考:AndroidiOSUnity

V3.3.17更新方法

1. 更新日志

Android

  1. 手Q互联opensdk更新至3.5.1
  2. Bugly更新至3.3.3

iOS

  1. 手Q互联opensdk更新至3.5.1
  2. 内置浏览器支持方向不再依赖业务配置的游戏方向
  3. 新增灯塔Qimei36的获取和上报能力
  4. 嵌入式浏览器JS获取网络类型接口支持5G网络类型返回

2. 更新指引

2.1 Android

2.1.1 新增灯塔、HttpDns配置开关

msdkconfig.ini文件中新增灯塔、HttpDns配置关闭开关,业务可自行按需配置是否需要灯塔、HttpDns相关能力,开关不配置则默认开启灯塔和HttpDns组件,示例如下:

;灯塔上报开关,默认应将其设为false,设为true即关闭了灯塔上报功能
CLOSE_BEACON_REPORT=false

;HttpDns开关,默认应将其设为false,设为true即关闭了HttpDns功能
CLOSE_HTTPDNS=false

2.1.2 微信小程序拉起后返回游戏回调调整

微信小程序拉起后返回游戏回调从OnShareNotify调整为OnWakeUpNotify,透传参数统一放在wakeupRet.messageExt字段中。

2.2 iOS

2.2.1 新增灯塔、HttpDns配置开关

info.plist文件中新增灯塔、HttpDns配置关闭开关,业务可自行按需配置是否需要灯塔、HttpDns相关能力,开关不配置则默认开启灯塔和HttpDns组件,示例如下:

;灯塔上报开关,默认应将其设为false,设为true即关闭了灯塔上报功能
<key>CLOSE_BEACON_REPORT</key>
<false/>

;HttpDns开关,默认应将其设为false,设为true即关闭了HttpDns功能
<key>CLOSE_HTTPDNS</key>
<false/>

2.2.2 微信小程序拉起后返回游戏回调调整

微信小程序拉起后返回游戏回调从OnShareNotify调整为OnWakeUpNotify,透传参数统一放在wakeupRet.messageExt字段中。

2.2.3 调整信鸽相关配置

适配信鸽组件新版本,info.plist中信鸽相关配置也相应有所调整,业务更新需注意以下几个配置信息的调整变更:

1、调整XG_HOST配置项,如果为上海集群业务需调整为tpns.sh.tencent.com,具体配置内容需咨询信鸽团队
2、删除XG_PORT配置项
3、删除XG_STAT_PORT配置项
4、删除XG_STAT_HOST配置项

2.2.4 新增CAID的获取和上报(仅支持iOS9.0及以上系统)

新增CAID的获取和上报能力,有CAID上报需求的业务需自行集成MSDK发布包中的TGPA组件tgpasimple.framework,MSDK内部会通过反射调用获取并上报CAID。

注:CAID的获取和上报仅支持iOS9.0及以上系统,iOS9.0以下系统TGPA组件无法获取CAID。

V3.3.16更新方法

1. Android

1.1 Android11适配

主要适配QQ&微信&内置浏览器分享能力,业务接入时务必注意AndroidManifest.xml的变动以及新增资源文件file_paths.xml。为方便业务接入,QQ&微信&内置浏览器 FileProvider 配置合一起处理(如已接入3.3.12-3.3.15的业务升级,需注意修改

1.1.1 AndroidManifest文件配置FileProvider

AndroidManifest.xml文件中新增FileProvider配置,示例如下:

<provider
    android:name="android.support.v4.content.FileProvider"
    android:authorities="com.example.wegame.fileprovider"
    android:exported="false"
    android:grantUriPermissions="true">
    <meta-data
        android:name="android.support.FILE_PROVIDER_PATHS"
        android:resource="@xml/file_paths"/>
</provider>

注意事项: 其中com.example.wegame需替换为业务自己的包名。

1.1.2 新增file_paths.xml资源文件

在res/xml/目录下新增file_paths.xml文件,文件内容如下:

<?xml version="1.0" encoding="utf-8"?>
<paths>
    <external-files-path name="opensdk_external" path="Images/tmp"/>
    <external-files-path name="sharedata" path="shareData/"/>
    <external-files-path name="msdk_webview_share" path="MSDK/msdk_webview"/>
    <root-path name="opensdk_root" path=""/>
</paths>

1.2 新增QQ扫码登录能力

新增QQ扫码登录能力,复用void WGQrCodeLogin(ePlatform platform)接口,platform参数传ePlatform_QQ即可。无论机器上是否有安装QQ app,均可拉起QQ二维码登录进行扫码授权登录。

1.3 实名制浏览器新增loading页

实名制浏览器新增loading页和加载菊花动画,在打开实名注册页面前会有短暂loading效果。各业务可在msdkconfig.ini文件中配置loading页背景色,不配置默认为#010C0F,配置示例如下:

MSDK_CENTER_CONTROL_WEBVIEW_LOADING_BACKGROUND_COLOR=#010C0F

1.4 组件更新

1. 更新HttpDns 0.0.61a版本
2. 更新QQ OpenSDK 3.5.0版本
3. 更新信鸽1.2.0.4版本
4. 更新灯塔3.2.0.4-bid3版本
5. 更新Bugly 3.2.34版本

1.5 MSDK内部变更事项

1. 去除主包中LBS相关权限检查及API调用
2. 去除用户Local ip的收集和上报
3. 实名制浏览器添加MSDK UseAgent标识

1.6 腾讯云信鸽AndroidManifest.xml文件配置变更

<!-- 【注意】 XGPushActivity 配置于3.3.16 版本开始废弃 -->
    <activity
        android:name="com.tencent.android.tpush.XGPushActivity">
        <intent-filter>
            <action android:name="android.intent.action" />
        </intent-filter>
    </activity>
    <!-- 【注意】 XGPushActivity 配置于3.3.16 版本开始废弃 -->

    <!-- 【注意】 TpnsActivity 配置于3.3.16 版本开始新增,其中 host 替换成 “应用包名” -->
    <activity android:name="com.tencent.android.tpush.TpnsActivity"
         android:theme="@android:style/Theme.Translucent.NoTitleBar">
         <intent-filter>
             <data
                 android:scheme="tpns"
                 android:host="com.example.wegame"/>
             <action android:name="android.intent.action.VIEW" />
             <category android:name="android.intent.category.BROWSABLE" />
             <category android:name="android.intent.category.DEFAULT" />
         </intent-filter>
     </activity>
    <!-- 【注意】 TpnsActivity 配置于3.3.16 版本开始新增,其中 host 替换成 “应用包名” -->

<!-- MQTT START-->
    <service android:exported="false"
        android:process=":xg_vip_service"
        <!-- 【注意】 name 于3.3.16 版本开始变更为 com.tencent.tpns.mqttchannel.services.MqttService-->
        android:name="com.tencent.tpns.mqttchannel.services.MqttService" />


    <!--【注意】authorities修改为 包名.XG_SETTINGS_PROVIDER -->
    <provider
        android:exported="false"
        <!-- 【注意】 name 于3.3.16 版本开始变更为 com.tencent.tpns.baseapi.base.SettingsContentProvider-->
        android:name="com.tencent.tpns.baseapi.base.SettingsContentProvider"
        android:authorities="com.example.wegame.XG_SETTINGS_PROVIDER" />
    <!-- MQTT END-->

Android 升级指引

2. iOS

2.1 新增QQ扫码登录能力

新增QQ扫码登录能力,复用void WGQrCodeLogin(ePlatform platform)接口,platform参数传ePlatform_QQ即可。无论机器上是否有安装QQ app,均可拉起QQ二维码登录进行扫码授权登录。

2.2 实名制浏览器新增loading页

实名制浏览器新增loading页和加载菊花动画,在打开实名注册页面前会有短暂loading效果。各业务可在info.plist文件中配置loading页背景色,不配置默认为#010C0F,配置示例如下:

<key>MSDK_CENTER_CONTROL_WEBVIEW_LOADING_BACKGROUND_COLOR</key>
<string>#010C0F</string>

2.3 调整IDFA获取默认行为

苹果在iOS14系统调整了IDFA的获取权限,根据苹果现有政策,MSDK调整了IDFA默认获取行为,现版本默认行为为不判断用户是否授权直接获取。如业务有弹窗请求用户授权的需求,则需各业务自行给用户弹窗授权,按照以下步骤可实现MSDK在用户授权允许后才会获取IDFA:

  1. 使用Xcode12打包
  2. 引入系统库依赖AppTrackingTransparency.framework
  3. 在info.plist文件中新增如下配置:
<key>MSDK_APP_TRACKING_ENABLE</key>
<true/>

2.4 调整信鸽集成方式

MSDK包中不再包含信鸽SDK的二进制文件,各业务可按需接入信鸽。接入信鸽的时候,MSDK对外接口保持不变,业务除了要链接MSDKPush.framework外,还需要链接信鸽自己的SDK,信鸽SDK路径在MSDK版本解压后MSDKDemo/Library/MSDKPush/XG目录。

2.4.1 XG_HOST 配置变更

如果接入点为上海集群(具体接入点可同 “腾讯云助手(技术支持)” 咨询确认),需要将 info.plist 中 XG_HOST 配置为 https://api.tpns.sh.tencent.com,并做好信鸽相关功能测试。

2.5 组件更新

1. 更新信鸽1.2.7.2版本

2.6 MSDK内部变更事项

1. iPhone12系列机型内置浏览器&扫码登录界面适配
2. 去除用户Local ip的收集和上报
3. 实名制浏览器添加MSDK UseAgent标识
4. 信鸽前台接收推送消息默认无弹窗&无声音&无角标提示
5. 优化内置浏览器显示

iOS 升级指引

解压 MSDK_iOS_3.3.xxxi.xxx.zip ,得到 MSDK_iOS_3.3.xxxi.xxx,添加以下文件到工程中

3. Unity

3.1 适配Unity2019

适配Unity2019打包。

3.2 包含上述Android和iOS变更

Unity 升级指引

V3.3.15更新方法

Android

1. 信鸽推送相关

1.1 新增绑定自定义账号能力

新增绑定自定义账号能力,业务可调用WGSetPushAccount接口绑定自定义账号,并通过管理端根据自定义账号下发推送消息。函数声明及相关参数说明在WGPlatform.h文件中,声明如下:

    /**
    * 设置用户账号
    * @param account 用户账号
    */
    void WGSetPushAccount(unsigned char *account);

1.2 新增解绑自定义账号能力

新增解绑自定义账号能力,业务可调用WGDeletePushAccount接口解绑自定义账号,解绑后将不可再通过管理端根据自定义账号下发推送消息。函数声明及相关参数说明在WGPlatform.h文件中,声明如下:

    /**
     * 删除设置的标签
     * @param account 用户标签
     */
     void WGDeletePushAccount(unsigned char *account);

1.3 新增信鸽反注册能力

新增信鸽反注册能力,业务可调用WGUnregisterPush接口进行反注册,反注册后将不可再通过管理端对当前设备下发推送消息。函数声明及相关参数说明在WGPlatform.h文件中,声明如下:

    /**
    * 终止推送服务后,将无法通过腾讯移动推送服务向设备推送消息
    * 如再次需要再次消息推送,则必须需要再次调用 WGRegisterAPNSPushNotification 方法重启腾讯移动推送服务。
    *
    */
    void WGUnregisterPush();

1.4 新增信鸽服务集群配置能力

如果接入点为上海集群,需要新增以下配置(具体接入点可同 “腾讯云助手(技术支持)” 咨询确认)

在 AndroidManifest.xml 添加以下节点

<!-- XG 1.1.6.3 及之前的版本 XG_GUID_SERVER、XG_STAT_SERVER 和 XG_LOG_SERVER 配置生效, 1.1.6.3 以后的版本 XG_SERVER_SUFFIX 生效,建议都加上防止后面升级出现不兼容的问题-->

<meta-data
    android:name="XG_GUID_SERVER"
    android:value="https://guid.tpns.sh.tencent.com/guid/api/GetGuidAndMqttServer" />
<meta-data
    android:name="XG_STAT_SERVER"
    android:value="https://stat.tpns.sh.tencent.com/log/statistics/push" />
<meta-data
    android:name="XG_LOG_SERVER"
    android:value="https://log.tpns.sh.tencent.com/v3/mobile/log/upload" />
<meta-data
    android:name="XG_SERVER_SUFFIX"
    android:value="tpns.sh.tencent.com" />    

2. 新增全屏打开内置浏览器能力

新增打开内置浏览器全屏展示能力,可通过调用WGOpenUrl接口并传递全屏参数fullScreen为true即可,函数声明及相关参数说明在WGPlatform.h文件中,声明如下:

    /**
     *  @param openUrl 要打开的url
     */
    void WGOpenUrl(unsigned char *openUrl, const eMSDK_SCREENDIR &screenDir, const bool fullScreen, const char *algorithm = "v2");

3. 新增MSDKPolicy 插件

新增MSDKPolicy 插件,该插件可在游戏首次安装启动时给用户弹窗提示游戏会收集用户相关信息,并向用户请求所需权限,业务可根据自身情况按需合入该插件。

3.1 导入插件

添加MSDKPolicy插件,可直接将MSDKPolicy完整的copy到跟其他插件同级目录中,并引入MSDKPolicy目录及添加对MSDKPolicy的依赖

3.2 修改AndroidManifest.xml

将启动Activity调整为MSDKPolicyActivity,示例如下:

    <!-- MSDKPolicy 插件配置 -->
    <activity android:name="com.tencent.gcloud.msdk.core.policy.MSDKPolicyActivity"
        android:configChanges = "keyboard|keyboardHidden|screenLayout|screenSize"
        android:launchMode="singleTask"
        android:theme="@style/MSDKPolicyTheme">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
            <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
        </intent-filter>
        <!--  MSDK_POLICY_TARGET_ACTIVITY 用于指定要跳转到的【应用或者游戏的首个activity】-->
        <meta-data
            android:name="MSDK_POLICY_TARGET_ACTIVITY"
            android:value="com.example.wegame.MainActivity" />
        <meta-data android:name="MSDK_POLICY_DEBUG" android:value="true"/>
        <meta-data android:name="MSDK_RESULT_FILE_NAME" android:value="WEGAMEDB2"/>
        <meta-data android:name="IS_MSDK_V5" android:value="false"/>
    </activity>

注意事项:

  1. MSDK_POLICY_TARGET_ACTIVITY 参数value值需调整为游戏的启动Activity。

  2. 其余参数请保持与示例一致。

4. LBS插件化

LBS功能插件化,新增MSDKLbs.jar,业务可按需合入。如不需要LBS能力,直接删除MSDKLibrary/libs/MSDKLbs.jar文件即可

5. 新增H5页面获取手机号能力

新增H5活动页面与Native桥接获取用户手机号能力,需要接入该能力的业务可企业微信咨询adanayang(杨洪平)

6. 新增支持V3签名渠道号读取能力

游戏项目assets目录下msdkconfig.ini文件中添加 V3SIGNING_ENABLED ,启用v3签名的包一定要打开这个开关(不开会导致渠道号读取错误),true为开启,不填默认关闭

7. Bug修复

7.1 修复非MSDK Scheme拉起游戏会有OnWakeupNotify回调问题

7.2 修复小米部分刘海屏机器实名制页面全屏适配问题

8. 组件更新

8.1 更新微信OpenSDK 6.6.14版本

8.2 更新Bugly SDK 3.2.3版本

Android 升级指引

iOS

1. 信鸽推送相关

1.1 新增绑定自定义账号能力

新增绑定自定义账号能力,业务可调用WGSetPushAccount接口绑定自定义账号,并通过管理端根据自定义账号下发推送消息。函数声明及相关参数说明在WGPlatform.h文件中,声明如下:

    /**
    * 设置用户账号
    * @param account 用户账号
    */
    void WGSetPushAccount(unsigned char *account);

1.2 新增解绑自定义账号能力

新增解绑自定义账号能力,业务可调用WGDeletePushAccount接口解绑自定义账号,解绑后将不可再通过管理端根据自定义账号下发推送消息。函数声明及相关参数说明在WGPlatform.h文件中,声明如下:

    /**
     * 删除设置的标签
     * @param account 用户标签
     */
     void WGDeletePushAccount(unsigned char *account);

1.3 新增信鸽反注册能力

新增信鸽反注册能力,业务可调用WGUnregisterPush接口进行反注册,反注册后将不可再通过管理端对当前设备下发推送消息。函数声明及相关参数说明在WGPlatform.h文件中,声明如下:

    /**
    * 终止推送服务后,将无法通过腾讯移动推送服务向设备推送消息
    * 如再次需要再次消息推送,则必须需要再次调用 WGRegisterAPNSPushNotification 方法重启腾讯移动推送服务。
    *
    */
    void WGUnregisterPush();

1.4 新增信鸽服务集群配置能力

如果接入点为上海集群,需要新增以下配置(具体接入点可同 “腾讯云助手(技术支持)” 咨询确认)

在项目工程的 info.plist 添加

<key>XG_HOST</key>
<string>https://guid.tpns.sh.tencent.com</string>
<key>XG_PORT</key>
<integer>0</integer>
<key>XG_STAT_HOST</key>
<string>https://stat.tpns.sh.tencent.com</string>
<key>XG_STAT_PORT</key>
<integer>0</integer>

1.5 信鸽库需业务添加依赖

由于信鸽数据上报能力信鸽侧为反射调用,因此需要各业务自行添加对信鸽的依赖。接入信鸽能力除添加MSDKPush/MSDKPush.framework外还需添加MSDKPush/XG目录下的信鸽库及头文件。

2. 新增全屏打开内置浏览器能力

新增打开内置浏览器全屏展示能力,可通过调用WGOpenUrl接口并传递全屏参数fullScreen为true即可,函数声明及相关参数说明在WGPlatform.h文件中,声明如下:

    /**
     *  @param openUrl 要打开的url
     */
    void WGOpenUrl(unsigned char *openUrl, const eMSDK_SCREENDIR &screenDir, const bool fullScreen, const char *algorithm = "v2");

3. 新增微信Universal Link自检能力

新增微信Universal Link检测接口,可用于检测接入微信Universal Link登录&分享是否正常,可通过调用WGCheckWXUniversalLink接口进行测试,检测结果通过onCheckULNotify进行回调,调用示例如下:

    //设置回调
    MyObserver* ob = MyObserver::GetInstance();
    WGPlatform::GetInstance()->WGSetObserver(ob);
    //检查微信 UL
    WGPlatform::GetInstance()->WGCheckWXUniversalLink();

    //回调示例
    void MyObserver::onCheckULNotify(CheckULRet& checkUlRet)
    {
          if (checkUlRet.success)
           { 
               //检测成功
         }
    }

注意事项:

该能力仅可在MSDK联调环境下使用,严禁在现网环境下调用和使用。

4. 敏感数据模块化

IDFA获取模块化,新增MSDKSensitivity.framework,业务可按需接入。

5. 新增H5页面获取手机号能力

新增H5活动页面与Native桥接获取用户手机号能力,需要接入该能力的业务可企业微信咨询adanayang(杨洪平)

6. 新增Bugly卡顿监测及上报配置

6.1 新增Bulgy卡顿监测配置

业务可通过配置开启Bugly卡顿监测,在info.plist文件中配置MSDK_BUGLY_BLOCK_MONITOR_ENABLE为true来开启,不配置默认关闭,示例如下:

    <key>MSDK_BUGLY_BLOCK_MONITOR_ENABLE</key>
    <true/>

6.2 新增Bulgy卡顿检测时间配置

业务可通过配置设置卡顿监测时间,在info.plist文件中配置MSDK_BUGLY_BLOCK_MONITOR_TIMEOUT,单位为秒,不配置默认为5秒,示例如下:

    <key>MSDK_BUGLY_BLOCK_MONITOR_TIMEOUT</key>
    <integer>5</integer>

7. Bug修复

7.1 修复内置浏览器切后台再回前台界面绘制异常的问题

7.2 修复内置浏览器网页加载过程中分享crash的问题

7.3 修复嵌入式浏览器C++层关闭接口crash的问题

8. 组件更新

8.1 更新微信OpenSDK 1.8.8版本

8.2 更新灯塔SDK 3.1.23版本

8.3 更新Bugly SDK 2.5.61版本

iOS 升级指引

解压 MSDK_iOS_3.3.xxxi.xxx.zip ,得到 MSDK_iOS_3.3.xxxi.xxx,添加以下文件到工程中

Unity

1. 信鸽推送相关

1.1 新增绑定自定义账号能力

新增绑定自定义账号能力,业务可调用WGSetPushAccount接口绑定自定义账号,并通过管理端根据自定义账号下发推送消息。函数声明及相关参数说明在IMsdk.cs文件中,声明如下:

    /**
    * 设置账号
    * @param  account 待设置的标签名称,不能为null或空。
    */
   void WGSetPushAccount(string account);

1.2 新增解绑自定义账号能力

新增解绑自定义账号能力,业务可调用WGDeletePushAccount接口解绑自定义账号,解绑后将不可再通过管理端根据自定义账号下发推送消息。函数声明及相关参数说明在IMsdk.cs文件中,声明如下:

    /**
    * 设置账号
    * @param account 待删除的账号名称,不能为null或空
    */
   void WGDeletePushAccount(string account);

1.3 新增信鸽反注册能力

新增信鸽反注册能力,业务可调用WGUnregisterPush接口进行反注册,反注册后将不可再通过管理端对当前设备下发推送消息。函数声明及相关参数说明在IMsdk.cs文件中,声明如下:

    /**
    * 停止推送
    */
    void WGUnregisterPush();

2. 新增全屏打开内置浏览器能力

新增打开内置浏览器全屏展示能力,可通过调用WGOpenUrl接口并传递全屏参数fullScreen为true即可,函数声明及相关参数说明在IMsdk.cs文件中,声明如下:

    /**
    *  @param openUrl 要打开的url
    *  @param screendir 指定屏幕的方向
    *        eMSDK_SCREENDIR_SENSOR(0),   //横竖屏
    *        eMSDK_SCREENDIR_PORTRAIT(1),   //竖屏
    *         eMSDK_SCREENDIR_LANDSCAPE(2);    //横屏
    *  @param fullScreen 是否全屏
    */
    void WGOpenUrl(string openUrl, eMSDK_SCREENDIR screendir, bool fullScreen, string algorithm = "v2");

3. 新增微信Universal Link自检能力

新增微信Universal Link检测接口,可用于检测接入微信Universal Link登录&分享是否正常,可通过调用WGCheckWXUniversalLink接口进行测试,检测结果通过onCheckULNotify进行回调,调用示例如下:

    //设置回调
    MsdkEvent.Instance.CheckULEvent += (CheckULRet ret) =>
    {
        if (ret. success)
        {
            //检测成功
        }
    };

    //接口调用
    WGPlatform.Instance.WGCheckWXUniversalLink();

注意事项:

该能力仅可在MSDK联调环境下使用,严禁在现网环境下调用和使用。

4. 新增MSDKPolicy 插件

Android 新增MSDKPolicy 插件,该插件可在游戏首次安装启动时给用户弹窗提示游戏会收集用户相关信息,并向用户请求所需权限,业务可根据自身情况按需合入该插件。

4.1 开启开关

MSDK部署面板中勾选 ENABLE MSDKPolicy

4.2 修改AndroidManifest.xml

MSDK部署完成后,需要将启动Activity调整为MSDKPolicyActivity,示例如下:

    <!-- MSDKPolicy 插件配置 -->
    <activity android:name="com.tencent.gcloud.msdk.core.policy.MSDKPolicyActivity"
        android:configChanges = "keyboard|keyboardHidden|screenLayout|screenSize"
        android:launchMode="singleTask"
        android:theme="@style/MSDKPolicyTheme">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
            <category android:name="android.intent.category.LEANBACK_LAUNCHER" />
        </intent-filter>
        <!--  MSDK_POLICY_TARGET_ACTIVITY 用于指定在流程结束时,需要跳转到的应用或者游戏的首个 Activity-->
        <meta-data
            android:name="MSDK_POLICY_TARGET_ACTIVITY"
            android:value="com.example.wegame.MainActivity" />
        <meta-data android:name="MSDK_POLICY_DEBUG" android:value="true"/>
        <meta-data android:name="MSDK_RESULT_FILE_NAME" android:value="WEGAMEDB2"/>
        <meta-data android:name="IS_MSDK_V5" android:value="false"/>
    </activity>

注意事项:

Unity 升级指引

V3.3.132更新方法

1. 更新日志

Android

  1. 【删除】删除MTA所有接口调用,删除MTA以及对MTA依赖
  2. 【删除】删除MID所有接口调用,删除MID以及对MID依赖
  3. 【更新】灯塔3.2.0.4-bid版本升级,关闭mac地址&imel&bid接口调用
  4. 【更新】Android(1.1.6.3) 信鸽腾讯云版本升级
  5. 【新增】Android 信鸽新增联合保活能力配置开关,默认关闭

iOS

  1. 【更新】iOS(1.2.6.1)信鸽腾讯云版本升级
  2. 【更新】iOS(2.5.4) Bugly 版本升级
  3. 【优化】iOS 13 内置浏览器界面绘制优化

Unity

参考上述 Android 及 iOS 功能变更

2. 更新指引

Android

iOS

解压 MSDK_iOS_3.3.xxxi.xxx.zip ,得到 MSDK_iOS_3.3.xxxi.xxx,添加以下文件到工程中

Unity

3. Android 信鸽联合保活能力配置

信鸽 Android 支持对联合保活能力进行配置,默认关闭,可防止自身应用拉起其他应用,无需额外配置。若有以下日志打印,则表明联合保活能力已经关闭:

I/TPNS: [ServiceUtil] disable pull up other app

如需开启联合保活能力,在 assets/msdkconfig.ini 文件中增加如下配置:

XG_PULL_UP_OTHER_APP_ENABLE = true

此外,可在 AndroidManifest.xml 文件中修改以下节点,配置自身应用不被其他应用拉起(如不需要可忽略,维持上一版本配置即可)

   <!-- 在自身应用的AndroidManifest.xml文件中修改如下结点,其中 xxx 为任意自定义名称: -->     
   <!-- 关闭与 TPNS 应用的联合保活功能,请配置 -->
   <provider
       android:name="com.tencent.android.tpush.XGPushProvider"
       tools:replace="android:authorities"
       android:authorities="应用包名.xxx.XGVIP_PUSH_AUTH"
       android:exported="false" />

V3.3.12更新方法

1. 更新日志

  1. 【更新】iOS(1.2.5.3)、Android(1.1.5.5) 信鸽腾讯云版本升级
  2. 【更新】iOS(2.5.3)、Android(3.2.1)Bugly 版本升级
  3. 【更新】TBS(4.3.0.1197)版本升级
  4. 【新增】iOS、Android双端手Q opensdk版本更新3.3.9(新增小程序分享透传参数)
  5. 【新增】iOS、Android双端新增WebView 模块 Loading 页面颜色开关
  6. 【新增】内置浏览器新增支持小程序分享及拉起小程序(手Q、微信平台)
  7. 【新增】iOS新增apple账号登录及实名制
  8. 【优化】XCode 11构建关闭outliner优化选项

2. 更新指引

Android

iOS

解压 MSDK_iOS_3.3.12i.54.zip ,得到 MSDK_iOS_3.3.12i.54,添加以下文件到工程中

Unity

3. QQ SDK 3.3.9 配置变更和 API 使用指引

配置变更

手 Q SDK 需要提供 fileProvider , 因此 MSDK 在 AndroidManifest.xml 中新增了

 <provider android:authorities="com.example.wegame.QQSDKFileProvider"
           android:name="android.support.v4.content.FileProvider"
           android:exported="false"
           android:grantUriPermissions="true" >
            <meta-data android:name="android.support.FILE_PROVIDER_PATHS"
                       android:resource="@xml/file_paths"/>
</provider>

并在 MSDKLibrary/res/xml 目录中新增 file_paths.xml

<?xml version="1.0" encoding="utf-8"?>
<paths>
    <external-files-path name="opensdk_external" path="Images/tmp"/>
    <root-path name="opensdk_root" path=""/>
</paths>

当项目组升级时,需要把 com.example.wegame,替换为项目组包名,否则会导致图片分享时获取图片失败的异常,并有可能和其他 App 产生冲突

由于 fileProvider 影响图片分享,以此建议项目组接入时务必检查所有图片的分享,确保升级后功能可用

组队邀请 API 使用

1、查看在线文档的手 Q 小程序分享,在此基础上项目组需要在原分享路径上新增 get 参数即可,参考如下

原 miniProgramPath 传递参数
miniProgramPath = pages/component/pages/launchApp813/launchApp813

将组队信息携带后
miniProgramPath = pages/component/pages/launchApp813/launchApp813?key1=value1&key2=value2

2、查看在线文档的登录中的 Wakeup 内容,实现如下回调即可,参考下面代码

```c# MsdkEvent.Instance.WakeupEvent += (WakeupRet wakeupRet) => { // TODO GAME 在异账号这里接收 手 Q组队信息 if (eFlag.eFlag_Succ == wakeupRet.flag || eFlag.eFlag.eFlag_NeedLogin == wakeupRet.flag { var messageExt = wakeupRet.messageExt; // messageExt 为传递参数的 JSON 格式的字符串{"key1": "value1","key2": "value2"} } };


### 4. Apple 账号登录配置

Apple 登录为新增渠道,文档较多,因此单独提供文档,参考同包提供的 Apple 登录文档:V3 Apple 登录

> 不需要 Apple 登录功能,也需要新增在 Xcode  BuildPhases  中添加 AuthenticationServices.framework,同时设置 Status 为 optional,避免编译失败
>
> XUPorter 中的配置
>
> {
>     "group": "MSDKApple",
>     "libs": [],
>     "frameworks": ["AuthenticationServices.framework:weak"],
>     "files": [],
>     "folders": [],
>     "excludes": [],
>     "headerpaths":[],
>     "build_settings": {},
>     "system_capabilities": {},
>     "Info.plist":{} 
> }

### 5. 信鸽推送配置更新

由于信鸽更新了腾讯云版本,变更很大,因此单独提供文档,参考同包提供的信鸽专属文档:信鸽腾讯云版本接入指引


### 6. WebView 模块 Loading 页面颜色开关说明

Android:msdkconfig.ini/iOS:info.plist中新增MSDK_WEBVIEW_LOADING_BACKGROUND_COLOR 字段,不配置或者配置为""时不开启加载的loading页面;如配置,会开启携带该背景颜色的loading页面且必须填写格式为不包含透明度的16进制颜色值,如:#000000


# V3.3.11更新方法

## 1. 新增打开AMS活动中心能力
新增打开AMS活动中心接口,调用该接口可使用MSDK自带内置浏览器自动打开业务AMS活动页。

### Android、iOS版本接口
函数声明及相关参数说明在WGPlatform.h文件中,声明如下:
/**
*  打开AMS营销活动中心
*
*  @param gameName 业务代码缩写,每个业务不同,各业务在接入AMS平台时由系统分配。
*  @param actChannelId 活动渠道ID,由活动管理端后台分配,各业务登录[互娱AMS]管理端自行获取。
*  @param zoneId 用户区服信息,大区 1手Q,2微信
*  @param platformId 平台ID:iOS(0),安卓(1)
*  @param partitionId 小区ID
*  @param roleId 角色ID
*  @param extra 额外扩展参数,会以&extra=xxx形式附加在AMS活动中心url上,注意做好Url Encode
*  @param screenDir 屏幕方向,默认横竖屏
*
*/
void WGOpenAmsCenter(unsigned char *gameName,
                     unsigned char *actChannelId,
                     unsigned char *zoneId,
                     unsigned char *platformId,
                     unsigned char *partitionId,
                     unsigned char *roleId,
                     unsigned char *extra,
                     const eMSDK_SCREENDIR &screenDir = eMSDK_SCREENDIR_SENSOR);
***注意事项***

目前`gameName`、`actChannelId `参数为必填参数,其余参数选填。

### Unity版本接口
函数声明及相关参数说明在IMsdk.cs文件中,声明如下:
/**
*  打开AMS营销活动中心
*
*  @param gameName 业务代码缩写,每个业务不同,各业务在接入AMS平台时由系统分配。
*  @param actChannelId 活动渠道ID,由活动管理端后台分配,各业务登录[互娱AMS]管理端自行获取。
*  @param zoneId 用户区服信息,大区 1手Q,2微信
*  @param platformId 平台ID:iOS(0),安卓(1)
*  @param partitionId 小区ID
*  @param roleId 角色ID
*  @param extra 额外扩展参数,会以&extra=xxx形式附加在AMS活动中心url上,注意做好Url Encode
*  @param screenDir 屏幕方向,默认横竖屏
*
*/
void WGOpenAmsCenter(string gameName, string actChannelId, string zoneId, string platformId, string partitionId, string roleId, string extra, eMSDK_SCREENDIR screenDir);
***注意事项***

目前`gameName`、`actChannelId `参数为必填参数,其余参数选填。

## 2. 新增内置浏览器JS分享支持自定义分享图片能力
内置浏览器中结构化消息、链接消息、大图消息、音乐消息JS分享接口新增自定义分享图片链接字段,调用以上JS分享接口时传入`imgUrl`字段以及相应的图片url地址即可实现自定义分享图片能力,以JS大图分享为例:
//不带自定义图片,默认使用屏幕截图
var QQPhotoShare2zone='{"MsdkMethod":"WGSendToQQWithPhoto","scene":"1"}';
//传入imgUrl字段,自定义分享图片
var QQPhotoShareCustomer2zone='{"MsdkMethod":"WGSendToQQWithPhoto","scene":"1","imgUrl":"https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1583129551585&di=664b676a72185b9dfe3649662c423027&imgtype=0&src=http%3A%2F%2Fspider.nosdn.127.net%2F39dbf6d3f8bfdd94047c67149b5d3470.jpeg"}';

```

更多调用示例可参考示例网页源码

3. 新增开启iOS设备内置浏览器全屏配置

info.plist文件中新增MSDK_Webview_Force_Adapt_Bang_Screen类型为BOOL的配置项,配置为true时,MSDK内置浏览器横屏状态时将全屏展示;配置为false或不配置时,MSDK内置浏览器行为与之前老版本保持一致。

4. 问题修复

  1. 修复iOS内置浏览器自带分享偶先crash的问题
  2. 修复Android内置浏览器JS接口快速调用时第二次调用不生效的问题

5. 平台SDK更新

  1. 更新iOS微信OpenSDK 1.8.6.2版本,去除UIWebview相关关键词
  2. 更新Android信鸽SDK 4.3.7版本,新增厂商通道推送能力

Edit By MaHua