360SDK其他API接入

2018-10-10 11:10 更新

1.销毁接口【客户端调用】(必接)


    在应用主Activity中,使用Matrixdestroy方法

public static void
 destroy(Contextcontext)

    在应用主Activity的onDestroy()函数中调用,以退出登录状态并释放资源。调用完该接口后,360SDK又回到未初始化状态。


参数:

    context上下文


使用例子:

@Override
protected void onDestroy() {
super.onDestroy();
Matrix.destroy(this); 
}

 


2.退出接口【客户端调用】(必接)

功能说明:

    “退出游戏”,将直接调用退出回调函数。


接口示例及参数说明:

/**
     * 使用360SDK的退出接口
     *
     * @param isLandScape 是否横屏显示支付界面
     */
    protected void doSdkQuit(boolean isLandScape) {
 
        Bundle bundle = new Bundle();
 
        // 界面相关参数,360SDK界面是否以横屏显示。
        bundle.putBoolean(ProtocolKeys.IS_SCREEN_ORIENTATION_LANDSCAPE, isLandScape);
 
        // 可选参数,登录界面的背景图片路径,必须是本地图片路径
        bundle.putString(ProtocolKeys.UI_BACKGROUND_PICTRUE, "");
 
        // 必需参数,使用360SDK的退出模块。
        bundle.putInt(ProtocolKeys.FUNCTION_CODE, ProtocolConfigs.FUNC_CODE_QUIT);
 
        Intent intent = new Intent(this, ContainerActivity.class);
        intent.putExtras(bundle);
 
        Matrix.invokeActivity(this, intent, mQuitCallback);
    }


callback的 json数据格式:

进入论坛

{"which": 1,"label": "进入论坛"}


退出游戏

{"which": 2,"label": "退出游戏"}


返回按键/右上角X图标

{"which": 0,"label": "返回键/X关闭"}


callback示例:

// 退出的回调
private IDispatcherCallback mQuitCallback = new IDispatcherCallback() {
    @Override
public void onFinished(String data) {
// TODO your job
}
};



3.游戏角色信息上传【客户端调用】(必接)


功能说明:

    采集游戏内相关数据,用于跟 CP 深度运营当前游戏。

    Matrix 调用下面函数


接口示例及参数说明:

/*
* @param _id 当前情景,支持 enterServer(登录),levelUp(升级),createRole(创建角色)
* @param roleId 当前登录的玩家角色 ID,若无,可传入 userid
* @param roleName 当前登录的玩家角色名,不能为空,不能为 null,若无,传入“游戏名称+username”,
如“皇室战争大名鼎鼎”
* @param roleLevel 当前登录的玩家角色等级,必须为数字,且不能为 0,若无,传入 1
* @param zoneId 当前登录的游戏区服 ID,必须为数字,且不能为 0,若无,传入 1
* @param zoneName 当前登录的游戏区服名称,不能为空,不能为 null,若无,传入游戏名称+”1 区”,如“梦
幻西游 1 区”
* @param balance 当前用户游戏币余额,必须为数字,若无,传入 0
* @param vip 当前用户 VIP 等级,必须为数字,若无,传入 1
* @param partyName 当前用户所属帮派,不能为空,不能为 null,若无,传入”无帮派”
* */
public static boolean statEvent(
String id, String roleId, String roleName, String roleLevel,
String zoneId, String zoneName, String balance, String vip,
String partyName, HashMap<String, String> mapParams
)




4.打开论坛接口【客户端调用】(可选)


功能说明:

    打开论坛接口,为游戏用户提供分享、吐槽的地方,能够提高游戏用户的粘性。


接口示例及参数说明:

 /**
     * 使用360SDK的论坛接口
     *
     * @param isLandScape 是否横屏显示支付界面
     */
    protected void doSdkBBS(boolean isLandScape) {
 
        Bundle bundle = new Bundle();
 
        // 界面相关参数,360SDK界面是否以横屏显示。
        bundle.putBoolean(ProtocolKeys.IS_SCREEN_ORIENTATION_LANDSCAPE, isLandScape);
 
        // 必需参数,使用360SDK的论坛模块。
        bundle.putInt(ProtocolKeys.FUNCTION_CODE, ProtocolConfigs.FUNC_CODE_BBS);
 
        Intent intent = new Intent(this, ContainerActivity.class);
        intent.putExtras(bundle);
 
        Matrix.invokeActivity(this, intent, null);
    }



5.防沉迷查询接口【客户端调用】(可选)


功能说明:

    防沉迷系统是中国法律对网游管理的要求,因此游戏必须接入防沉迷查询接口。


使用方法:

    游戏方调用防沉迷查询接口,查询该用户是否已经成年。

    若已成年,则允许用户正常游戏,不做任何提醒。

    若未成年;或未实名注册的用户将受到防沉迷系统的限制.

    未实名注册的用户,需要调用实名注册接口,要求用户进行实名注册。


开发细则:
    游戏过程,会提示游戏用户的累计在线时间。
    累计游戏时间超过3小时,游戏收益(经验,金钱)减半。此后,每30分钟警示一次。累计游戏时间超过5小时,游戏收益为0。此后,每15分钟警示一次。

    如果未成年人的累计下线时间已满5小时,则累计在线时间清零,如再上线则重新累计在线时间。

 

接口示例及参数说明:

 /**
     * 本方法中的callback实现仅用于测试, 实际使用由游戏开发者自己处理
     *
     * @param accessToken
     * @param qihooUserId 奇虎360用户ID
     */
    protected void doSdkAntiAddictionQuery(String accessToken, String qihooUserId) {
 
        Bundle bundle = new Bundle();
 
            // 必需参数,用户access token,要使用注意过期和刷新问题,最大64字符。
        bundle.putString(ProtocolKeys.ACCESS_TOKEN, accessToken);
 
        // 必需参数,360账号id。
        bundle.putString(ProtocolKeys.QIHOO_USER_ID, qihooUserId);
 
        // 必需参数,使用360SDK的防沉迷查询模块。
        bundle.putInt(ProtocolKeys.FUNCTION_CODE, ProtocolConfigs.FUNC_CODE_ANTI_ADDICTION_QUERY);
 
        Intent intent = new Intent(this, ContainerActivity.class);
        intent.putExtras(bundle);
 
        Matrix.execute(this, intent, new IDispatcherCallback() {
            @Override
            public void onFinished(String data) {
            }
}
    }


callback的 json数据格式:

结果返回

{"content":{"ret":[{"qid":"199062142","status":"2"}]},"error_code":"0","error_msg":""}

error_code

0 查询成功 其他值查询失败

error_msg

错误消息

content

json对象,包含ret数组

ret

json对象的数组

qid

奇虎UserId

status

0,无此用户数据;1,未成年;2,已成年。


callback示例:

new IDispatcherCallback() {
 
@Override
    public void onFinished(String data) {
        if (!TextUtils.isEmpty(data)) {
            try {
                JSONObject resultJson = new JSONObject(data);
                int errorCode = resultJson.optInt("error_code");
                if (errorCode == 0) {
                    JSONObject contentData = resultJson.getJSONObject("content");
                    if(contentData != null) {
                    // 保存登录成功的用户名及密码
                        JSONArray retData = contentData.getJSONArray("ret");
                        if(retData != null && retData.length() > 0) {
                            int status = retData.getJSONObject(0).optInt("status");
                            switch (status) {
                            case 0:  // 查询结果:无此用户数据
                                Toast.makeText(SdkUserBaseActivity.this,
                                               getString(R.string.anti_addiction_query_result_0),
                                               Toast.LENGTH_LONG).show();
                                break;
                            case 1:  // 查询结果:未成年
                                 Toast.makeText(SdkUserBaseActivity.this,
                                                getString(R.string.anti_addiction_query_result_1),
                                                Toast.LENGTH_LONG).show();
                                 break;
                            case 2:  // 查询结果:已成年
                                 Toast.makeText(SdkUserBaseActivity.this,
                                                getString(R.string.anti_addiction_query_result_2),
                                                Toast.LENGTH_LONG).show();
                                 break;
                             default:
                                 break;
                         }
                         return;
                     }
                 }
             } else {
                 Toast.makeText(SdkUserBaseActivity.this,
                                resultJson.optString("error_msg"),
                                Toast.LENGTH_SHORT).show();
                 return;
              }
          } catch (JSONException e) {
              e.printStackTrace();
          }
          Toast.makeText(SdkUserBaseActivity.this,
                         getString(R.string.anti_addiction_query_exception),
                         Toast.LENGTH_LONG).show();
       }
    }
}



6.实名注册接口【客户端调用】(可选)

功能说明:

    提供实名注册接口,当游戏方调用防沉迷查询接口时,发现用户未填写实名注册信息时,可调用该接口发起实名注册。


接口示例及参数说明:

/**
     * 使用360SDK实名注册接口
     *
     * @param isLandScape 是否横屏显示登录界面
     * @param qihooUserId 奇虎360用户ID
     */
    protected void doSdkRealNameRegister(boolean isLandScape, String qihooUserId) {
 
        Bundle bundle = new Bundle();
 
        // 界面相关参数,360SDK界面是否以横屏显示。
        bundle.putBoolean(ProtocolKeys.IS_SCREEN_ORIENTATION_LANDSCAPE, isLandScape);
 
        // 必需参数,360账号id。
        bundle.putString(ProtocolKeys.QIHOO_USER_ID, qihooUserId);
 
        // 可选参数,登录界面的背景图片路径,必须是本地图片路径
        bundle.putString(ProtocolKeys.UI_BACKGROUND_PICTRUE, "");
 
        // 必需参数,使用360SDK的实名注册模块。
        bundle.putInt(ProtocolKeys.FUNCTION_CODE, ProtocolConfigs.FUNC_CODE_REAL_NAME_REGISTER);
 
        Intent intent = new Intent(this, ContainerActivity.class);
        intent.putExtras(bundle);
 
        Matrix.invokeActivity(this, intent, new IDispatcherCallback() {
            @Override
            public void onFinished(String data) {
            }
        });
    }

 


7.使用Matrix的get方法,获取基本信息

参数:

context上下文

// 获取AndroidManifest.xml中的meta-data QHOPENSDK_APPID
public static String getAppId(Context context)
 
// 获取AndroidManifest.xml中的meta-data QHOPENSDK_APPKEY
public static String getAppKey(Context context)
 
// 获取AndroidManifest.xml中的meta-data QHOPENSDK_PRIVATEKEY
public static String getPrivateKey(Context context)
 
// 获取sdk的VersionName
public static String getVersionName(Context context)



8.游戏关卡信息获取【客户端调用】(可选)

功能说明:

    提供在360后台配置的关卡信息获取接口,游戏接入方可以根据此接口获取在服务端配置的关卡信息


接口示例及参数说明:

  /**
     * 本方法中的callback实现仅用于测试, 实际使用由游戏开发者自己处理 
     */
    protected void doSdkGameLevelQuery(QihooUserInfo userInfo) {
 
        if (!checkLoginInfo(userInfo)) {
            return;
        }
       
        Bundle bundle = new Bundle();
 
        // 必需参数,使用360SDK的游戏关卡查询
        bundle.putInt(ProtocolKeys.FUNCTION_CODE, ProtocolConfigs.FUNC_CODE_GAME_LEVEL);
 
        Intent intent = new Intent(this, ContainerActivity.class);
        intent.putExtras(bundle);
        Matrix.execute(this, intent, new IDispatcherCallback() {
 
            @Override
            public void onFinished(String data) {
                if (!TextUtils.isEmpty(data)) {
                    try {
                        JSONObject resultJson = new JSONObject(data);
                        int errorCode = resultJson.optInt("errno");
                        if (errorCode == 0) {
                            JSONObject mData = resultJson.getJSONObject("data");
                            if(mData != null) {
                                //用户关卡信息
                                String mContent = mData.optString("content");
                                if(mContent.isEmpty()){
                                    Toast.makeText(SdkUserBaseActivity.this,"没有配置关卡信息", Toast.LENGTH_SHORT).show();
                                }else{
                                    Toast.makeText(SdkUserBaseActivity.this,"关卡信息为:"+mContent, Toast.LENGTH_SHORT).show();
                                }
                                return;
                            }
                        } else {
                            Toast.makeText(SdkUserBaseActivity.this,data, Toast.LENGTH_SHORT).show();
                            return;
                        }
 
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
 
                    Toast.makeText(SdkUserBaseActivity.this,
                            getString(R.string.anti_addiction_query_exception),
                            Toast.LENGTH_LONG).show();
                }
            }
        });
    }

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号