360SDK其他API接入

2018-10-10 11:10 更新

1.銷(xiāo)毀接口【客戶端調(diào)用】(必接)


    在應(yīng)用主Activity中,使用Matrixdestroy方法

public static void
 destroy(Contextcontext)

    在應(yīng)用主Activity的onDestroy()函數(shù)中調(diào)用,以退出登錄狀態(tài)并釋放資源。調(diào)用完該接口后,360SDK又回到未初始化狀態(tài)。


參數(shù):

    context上下文


使用例子:

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

 


2.退出接口【客戶端調(diào)用】(必接)

功能說(shuō)明:

    “退出游戲”,將直接調(diào)用退出回調(diào)函數(shù)。


接口示例及參數(shù)說(shuō)明:

/**
     * 使用360SDK的退出接口
     *
     * @param isLandScape 是否橫屏顯示支付界面
     */
    protected void doSdkQuit(boolean isLandScape) {
 
        Bundle bundle = new Bundle();
 
        // 界面相關(guān)參數(shù),360SDK界面是否以橫屏顯示。
        bundle.putBoolean(ProtocolKeys.IS_SCREEN_ORIENTATION_LANDSCAPE, isLandScape);
 
        // 可選參數(shù),登錄界面的背景圖片路徑,必須是本地圖片路徑
        bundle.putString(ProtocolKeys.UI_BACKGROUND_PICTRUE, "");
 
        // 必需參數(shù),使用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數(shù)據(jù)格式:

進(jìn)入論壇

{"which": 1,"label": "進(jìn)入論壇"}


退出游戲

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


返回按鍵/右上角X圖標(biāo)

{"which": 0,"label": "返回鍵/X關(guān)閉"}


callback示例:

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



3.游戲角色信息上傳【客戶端調(diào)用】(必接)


功能說(shuō)明:

    采集游戲內(nèi)相關(guān)數(shù)據(jù),用于跟 CP 深度運(yùn)營(yíng)當(dāng)前游戲。

    Matrix 調(diào)用下面函數(shù)


接口示例及參數(shù)說(shuō)明:

/*
* @param _id 當(dāng)前情景,支持 enterServer(登錄),levelUp(升級(jí)),createRole(創(chuàng)建角色)
* @param roleId 當(dāng)前登錄的玩家角色 ID,若無(wú),可傳入 userid
* @param roleName 當(dāng)前登錄的玩家角色名,不能為空,不能為 null,若無(wú),傳入“游戲名稱+username”,
如“皇室戰(zhàn)爭(zhēng)大名鼎鼎”
* @param roleLevel 當(dāng)前登錄的玩家角色等級(jí),必須為數(shù)字,且不能為 0,若無(wú),傳入 1
* @param zoneId 當(dāng)前登錄的游戲區(qū)服 ID,必須為數(shù)字,且不能為 0,若無(wú),傳入 1
* @param zoneName 當(dāng)前登錄的游戲區(qū)服名稱,不能為空,不能為 null,若無(wú),傳入游戲名稱+”1 區(qū)”,如“夢(mèng)
幻西游 1 區(qū)”
* @param balance 當(dāng)前用戶游戲幣余額,必須為數(shù)字,若無(wú),傳入 0
* @param vip 當(dāng)前用戶 VIP 等級(jí),必須為數(shù)字,若無(wú),傳入 1
* @param partyName 當(dāng)前用戶所屬幫派,不能為空,不能為 null,若無(wú),傳入”無(wú)幫派”
* */
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.打開(kāi)論壇接口【客戶端調(diào)用】(可選)


功能說(shuō)明:

    打開(kāi)論壇接口,為游戲用戶提供分享、吐槽的地方,能夠提高游戲用戶的粘性。


接口示例及參數(shù)說(shuō)明:

 /**
     * 使用360SDK的論壇接口
     *
     * @param isLandScape 是否橫屏顯示支付界面
     */
    protected void doSdkBBS(boolean isLandScape) {
 
        Bundle bundle = new Bundle();
 
        // 界面相關(guān)參數(shù),360SDK界面是否以橫屏顯示。
        bundle.putBoolean(ProtocolKeys.IS_SCREEN_ORIENTATION_LANDSCAPE, isLandScape);
 
        // 必需參數(shù),使用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.防沉迷查詢接口【客戶端調(diào)用】(可選)


功能說(shuō)明:

    防沉迷系統(tǒng)是中國(guó)法律對(duì)網(wǎng)游管理的要求,因此游戲必須接入防沉迷查詢接口。


使用方法:

    游戲方調(diào)用防沉迷查詢接口,查詢?cè)撚脩羰欠褚呀?jīng)成年。

    若已成年,則允許用戶正常游戲,不做任何提醒。

    若未成年;或未實(shí)名注冊(cè)的用戶將受到防沉迷系統(tǒng)的限制.

    未實(shí)名注冊(cè)的用戶,需要調(diào)用實(shí)名注冊(cè)接口,要求用戶進(jìn)行實(shí)名注冊(cè)。


開(kāi)發(fā)細(xì)則:
    游戲過(guò)程,會(huì)提示游戲用戶的累計(jì)在線時(shí)間。
    累計(jì)游戲時(shí)間超過(guò)3小時(shí),游戲收益(經(jīng)驗(yàn),金錢(qián))減半。此后,每30分鐘警示一次。累計(jì)游戲時(shí)間超過(guò)5小時(shí),游戲收益為0。此后,每15分鐘警示一次。

    如果未成年人的累計(jì)下線時(shí)間已滿5小時(shí),則累計(jì)在線時(shí)間清零,如再上線則重新累計(jì)在線時(shí)間。

 

接口示例及參數(shù)說(shuō)明:

 /**
     * 本方法中的callback實(shí)現(xiàn)僅用于測(cè)試, 實(shí)際使用由游戲開(kāi)發(fā)者自己處理
     *
     * @param accessToken
     * @param qihooUserId 奇虎360用戶ID
     */
    protected void doSdkAntiAddictionQuery(String accessToken, String qihooUserId) {
 
        Bundle bundle = new Bundle();
 
            // 必需參數(shù),用戶access token,要使用注意過(guò)期和刷新問(wèn)題,最大64字符。
        bundle.putString(ProtocolKeys.ACCESS_TOKEN, accessToken);
 
        // 必需參數(shù),360賬號(hào)id。
        bundle.putString(ProtocolKeys.QIHOO_USER_ID, qihooUserId);
 
        // 必需參數(shù),使用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數(shù)據(jù)格式:

結(jié)果返回

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

error_code

0 查詢成功 其他值查詢失敗

error_msg

錯(cuò)誤消息

content

json對(duì)象,包含ret數(shù)組

ret

json對(duì)象的數(shù)組

qid

奇虎UserId

status

0,無(wú)此用戶數(shù)據(jù);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:  // 查詢結(jié)果:無(wú)此用戶數(shù)據(jù)
                                Toast.makeText(SdkUserBaseActivity.this,
                                               getString(R.string.anti_addiction_query_result_0),
                                               Toast.LENGTH_LONG).show();
                                break;
                            case 1:  // 查詢結(jié)果:未成年
                                 Toast.makeText(SdkUserBaseActivity.this,
                                                getString(R.string.anti_addiction_query_result_1),
                                                Toast.LENGTH_LONG).show();
                                 break;
                            case 2:  // 查詢結(jié)果:已成年
                                 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.實(shí)名注冊(cè)接口【客戶端調(diào)用】(可選)

功能說(shuō)明:

    提供實(shí)名注冊(cè)接口,當(dāng)游戲方調(diào)用防沉迷查詢接口時(shí),發(fā)現(xiàn)用戶未填寫(xiě)實(shí)名注冊(cè)信息時(shí),可調(diào)用該接口發(fā)起實(shí)名注冊(cè)。


接口示例及參數(shù)說(shuō)明:

/**
     * 使用360SDK實(shí)名注冊(cè)接口
     *
     * @param isLandScape 是否橫屏顯示登錄界面
     * @param qihooUserId 奇虎360用戶ID
     */
    protected void doSdkRealNameRegister(boolean isLandScape, String qihooUserId) {
 
        Bundle bundle = new Bundle();
 
        // 界面相關(guān)參數(shù),360SDK界面是否以橫屏顯示。
        bundle.putBoolean(ProtocolKeys.IS_SCREEN_ORIENTATION_LANDSCAPE, isLandScape);
 
        // 必需參數(shù),360賬號(hào)id。
        bundle.putString(ProtocolKeys.QIHOO_USER_ID, qihooUserId);
 
        // 可選參數(shù),登錄界面的背景圖片路徑,必須是本地圖片路徑
        bundle.putString(ProtocolKeys.UI_BACKGROUND_PICTRUE, "");
 
        // 必需參數(shù),使用360SDK的實(shí)名注冊(cè)模塊。
        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方法,獲取基本信息

參數(shù):

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.游戲關(guān)卡信息獲取【客戶端調(diào)用】(可選)

功能說(shuō)明:

    提供在360后臺(tái)配置的關(guān)卡信息獲取接口,游戲接入方可以根據(jù)此接口獲取在服務(wù)端配置的關(guān)卡信息


接口示例及參數(shù)說(shuō)明:

  /**
     * 本方法中的callback實(shí)現(xiàn)僅用于測(cè)試, 實(shí)際使用由游戲開(kāi)發(fā)者自己處理 
     */
    protected void doSdkGameLevelQuery(QihooUserInfo userInfo) {
 
        if (!checkLoginInfo(userInfo)) {
            return;
        }
       
        Bundle bundle = new Bundle();
 
        // 必需參數(shù),使用360SDK的游戲關(guān)卡查詢
        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) {
                                //用戶關(guān)卡信息
                                String mContent = mData.optString("content");
                                if(mContent.isEmpty()){
                                    Toast.makeText(SdkUserBaseActivity.this,"沒(méi)有配置關(guān)卡信息", Toast.LENGTH_SHORT).show();
                                }else{
                                    Toast.makeText(SdkUserBaseActivity.this,"關(guān)卡信息為:"+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();
                }
            }
        });
    }

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)