396 lines
16 KiB
Java
396 lines
16 KiB
Java
package com.xscm.moduleutil.activity;
|
||
|
||
import android.webkit.JavascriptInterface;
|
||
|
||
import com.blankj.utilcode.util.ActivityUtils;
|
||
import com.xscm.moduleutil.utils.logger.Logger;
|
||
|
||
import org.json.JSONObject;
|
||
|
||
/**
|
||
* 项目名称 qipao-android
|
||
* 包名:com.yutang.xqipao.ui.h5
|
||
* 创建人 王欧
|
||
* 创建时间 2020/6/16 1:26 PM
|
||
* 描述 describe
|
||
*/
|
||
public class WebViewBridgeConfig {
|
||
public static final String NAME = "bridge";
|
||
public static final String TYPE_QQ_SERVICE = "qqService";
|
||
public static final String TYPE_FEEDBACK = "feedback";
|
||
public static final String TYPE_USER_ZONE = "userZone";
|
||
public static final String TYPE_RECHARGE = "recharge";
|
||
public static final String TYPE_BACK = "onBackPressed";
|
||
|
||
public static final String TYPE_GAME_RANK = "gameRank";//游戏排行榜
|
||
public static final String TYPE_GAME_SOUND = "gameSound";//游戏声音
|
||
public static final String TYPE_GAME_END = "gameEnd";//游戏结束
|
||
public static final String TYPE_GAME_PAUSE = "gamePause";//游戏暂停
|
||
public static final String TYPE_GAME_BEGIN = "gameBegin";//游戏开始
|
||
public static final String TYPE_GAME_NEXT = "gameNext";//游戏下一关
|
||
|
||
private static int gameCount = 0;//游戏次数
|
||
private String NextGame = "";//上次游戏名称
|
||
private String title = "";//标题
|
||
public static final String GAME_EL = "俄罗斯方块";//俄罗斯方块
|
||
public static final String GAME_XM = "消灭星星";//消灭星星
|
||
public static final String GAME_SB = "神步伐";//神步伐
|
||
public static final String GAME_XT = "线条冲刺";//线条冲刺
|
||
public static final String GAME_FK = "疯狂赛车";//疯狂赛车
|
||
|
||
public WebViewBridgeConfig(String title) {
|
||
this.title = title;
|
||
}
|
||
@JavascriptInterface
|
||
public void postMessage(String json) {
|
||
Logger.e(json);
|
||
try {
|
||
JSONObject jsonObject = new JSONObject(json);
|
||
String type = jsonObject.getString("type");
|
||
JSONObject object = jsonObject.getJSONObject("data");
|
||
switch (type) {
|
||
case TYPE_QQ_SERVICE:
|
||
serviceUser();
|
||
break;
|
||
case TYPE_FEEDBACK:
|
||
// ActivityUtils.startActivity(FeedBackActivity.class);
|
||
break;
|
||
case TYPE_USER_ZONE:
|
||
// ARouter.getInstance().build(ARouteConstants.NEW_HOME_PAGE).withString("userId", object.getString("userId")).navigation();
|
||
break;
|
||
case TYPE_RECHARGE:
|
||
// ARouter.getInstance().build(ARouters.ME_BALANCE).navigation();
|
||
break;
|
||
case TYPE_BACK:
|
||
try {
|
||
ActivityUtils.getTopActivity().onBackPressed();
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
}
|
||
break;
|
||
}
|
||
} catch (Exception e) {
|
||
e.printStackTrace();
|
||
}
|
||
}
|
||
|
||
//跳转QQ客服
|
||
private void serviceUser() {
|
||
// RemoteDataSource.getInstance().serviceUser(new BaseObserver<String>() {
|
||
// @Override
|
||
// public void onSubscribe(Disposable d) {
|
||
//
|
||
// }
|
||
//
|
||
// @Override
|
||
// public void onNext(String uin) {
|
||
// try {
|
||
// String qqUrl = "mqqwpa://im/chat?chat_type=wpa&uin=" + uin + "&version=1";
|
||
// ActivityUtils.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(qqUrl)));
|
||
// } catch (Exception e) {
|
||
// ToastUtils.showShort("请先安装QQ");
|
||
// }
|
||
// }
|
||
//
|
||
// @Override
|
||
// public void onComplete() {
|
||
//
|
||
// }
|
||
// });
|
||
}
|
||
|
||
|
||
/**
|
||
* H5小游戏语音互动调用
|
||
*
|
||
* @param json
|
||
*/
|
||
@JavascriptInterface
|
||
public void common(String json) {
|
||
// ThreadUtils.runOnUiThread(new Runnable() {
|
||
// @Override
|
||
// public void run() {
|
||
// Logger.e(json);
|
||
// try {
|
||
// JSONObject jsonObject = new JSONObject(json);
|
||
// String type = jsonObject.getString("type");
|
||
// JSONObject object = jsonObject.getJSONObject("params");
|
||
// switch (type) {
|
||
// case JOIN_LIVE_ROOM:
|
||
// quitLiveRoom();
|
||
// RtcManager.getInstance().setGame(true);
|
||
// RtcManager.getInstance().leaveChannel();
|
||
// //游戏时关闭房间
|
||
// ActivityUtils.finishActivity(RoomActivity.class);
|
||
// BaseApplication.getInstance().isPlaying = false;
|
||
// BaseApplication.getInstance().isShow = false;
|
||
// UserBean userBean = BaseApplication.getInstance().getUser();
|
||
// RtcManager.getInstance().loginRoomGame(object.getString("roomId"), userBean.getUser_id(), userBean.getNickname(), "");
|
||
// break;
|
||
// case LEAVE_LIVE_ROOM:
|
||
// RtcManager.getInstance().leaveChannel(object.getString("roomId"));
|
||
// RtcManager.getInstance().setAudioUrl(null);
|
||
// break;
|
||
// case ROOM_START_PUBLISH_STREAM:
|
||
// RtcManager.getInstance().applyWheat(String.format("%s_%s", object.getString("roomId"), object.getString("userId")));
|
||
// break;
|
||
// case ROOM_STOP_PUBLISH_STREAM:
|
||
// RtcManager.getInstance().downWheat();
|
||
// break;
|
||
// case ROOM_MUTE_LOCAL:
|
||
// RtcManager.getInstance().muteLocalAudioStream(object.getBoolean("mute"));
|
||
// break;
|
||
// case ROOM_MUTE_MICROPHONE:
|
||
// RtcManager.getInstance().muteSpeaker(object.getBoolean("mute"));
|
||
// break;
|
||
// case ROOM_SHOW_MESSAGE_DIALOG:
|
||
// DialogUtils.showDialogFragment(ARouter.getInstance().build(ARouteConstants.ROOM_MSG_DIALOG).navigation());
|
||
// break;
|
||
// case ON_CLOSE_BTN_CLICK:
|
||
// RtcManager.getInstance().leaveChannel();
|
||
// ActivityUtils.finishActivity(H5Activity.class);
|
||
// break;
|
||
// case TYPE_QQ_SERVICE:
|
||
// serviceUser();
|
||
// break;
|
||
// case TYPE_FEEDBACK:
|
||
// ActivityUtils.startActivity(FeedBackActivity.class);
|
||
// break;
|
||
// case TYPE_USER_ZONE:
|
||
// ARouter.getInstance().build(ARouteConstants.NEW_HOME_PAGE).withString("userId", object.getString("userId")).navigation();
|
||
// break;
|
||
// case TYPE_RECHARGE:
|
||
// ARouter.getInstance().build(ARouters.ME_BALANCE).navigation();
|
||
// break;
|
||
// case TYPE_BACK:
|
||
// try {
|
||
// ActivityUtils.getTopActivity().onBackPressed();
|
||
// } catch (Exception e) {
|
||
// e.printStackTrace();
|
||
// }
|
||
// break;
|
||
// //游戏排行榜
|
||
// case TYPE_GAME_RANK:
|
||
// switch (title) {
|
||
// case GAME_EL:
|
||
// AppLogUtil.reportAppLog(AppLogEvent.A050303);
|
||
// break;
|
||
// case GAME_SB:
|
||
// AppLogUtil.reportAppLog(AppLogEvent.A050403);
|
||
// break;
|
||
// case GAME_XM:
|
||
// AppLogUtil.reportAppLog(AppLogEvent.A050503);
|
||
// break;
|
||
// case GAME_XT:
|
||
// AppLogUtil.reportAppLog(AppLogEvent.A050603);
|
||
// break;
|
||
// case GAME_FK:
|
||
// AppLogUtil.reportAppLog(AppLogEvent.A050703);
|
||
// break;
|
||
// }
|
||
// break;
|
||
// //游戏开始
|
||
// case TYPE_GAME_BEGIN:
|
||
// switch (title) {
|
||
// case GAME_EL:
|
||
// if (!TextUtils.isEmpty(NextGame) && GAME_EL.equals(NextGame)) {
|
||
// gameCount++;
|
||
// }
|
||
// break;
|
||
// case GAME_SB:
|
||
// if (!TextUtils.isEmpty(NextGame) && GAME_SB.equals(NextGame)) {
|
||
// gameCount++;
|
||
// }
|
||
// break;
|
||
// case GAME_XM:
|
||
// if (!TextUtils.isEmpty(NextGame) && GAME_XM.equals(NextGame)) {
|
||
// gameCount++;
|
||
// }
|
||
// break;
|
||
// case GAME_XT:
|
||
// if (!TextUtils.isEmpty(NextGame) && GAME_XT.equals(NextGame)) {
|
||
// gameCount++;
|
||
// }
|
||
// break;
|
||
// case GAME_FK:
|
||
// if (!TextUtils.isEmpty(NextGame) && GAME_FK.equals(NextGame)) {
|
||
// gameCount++;
|
||
// }
|
||
// break;
|
||
// }
|
||
// if (gameCount == 0) {
|
||
// gameCount = 1;
|
||
// }
|
||
// break;
|
||
// //游戏结束
|
||
// case TYPE_GAME_END:
|
||
// switch (title) {
|
||
// case GAME_EL:
|
||
// AppLogUtil.reportAppLog(AppLogEvent.A050301, "game_count", String.valueOf(gameCount));
|
||
// break;
|
||
// case GAME_SB:
|
||
// AppLogUtil.reportAppLog(AppLogEvent.A050401, "game_count", String.valueOf(gameCount));
|
||
// break;
|
||
// case GAME_XM:
|
||
// AppLogUtil.reportAppLog(AppLogEvent.A050501, "game_count", String.valueOf(gameCount));
|
||
// break;
|
||
// case GAME_XT:
|
||
// AppLogUtil.reportAppLog(AppLogEvent.A050601, "game_count", String.valueOf(gameCount));
|
||
// break;
|
||
// case GAME_FK:
|
||
// AppLogUtil.reportAppLog(AppLogEvent.A050701, "game_count", String.valueOf(gameCount));
|
||
// break;
|
||
// }
|
||
// break;
|
||
// //游戏下一关
|
||
// case TYPE_GAME_NEXT:
|
||
// switch (title) {
|
||
// case GAME_XM:
|
||
// AppLogUtil.reportAppLog(AppLogEvent.A050504);
|
||
// break;
|
||
// case GAME_XT:
|
||
// AppLogUtil.reportAppLog(AppLogEvent.A050604);
|
||
// break;
|
||
// }
|
||
// break;
|
||
// //游戏暂停
|
||
// case TYPE_GAME_PAUSE:
|
||
// break;
|
||
// //游戏声音
|
||
// case TYPE_GAME_SOUND:
|
||
// switch (title) {
|
||
// case GAME_EL:
|
||
// if (!object.getBoolean("sound")) {
|
||
// AppLogUtil.reportAppLog(AppLogEvent.A050302);
|
||
// }
|
||
// break;
|
||
// case GAME_SB:
|
||
// if (!object.getBoolean("sound")) {
|
||
// AppLogUtil.reportAppLog(AppLogEvent.A050402);
|
||
// }
|
||
// break;
|
||
// case GAME_XM:
|
||
// if (!object.getBoolean("sound")) {
|
||
// AppLogUtil.reportAppLog(AppLogEvent.A050502);
|
||
// }
|
||
// break;
|
||
// case GAME_XT:
|
||
// if (!object.getBoolean("sound")) {
|
||
// AppLogUtil.reportAppLog(AppLogEvent.A050602);
|
||
// }
|
||
// break;
|
||
// case GAME_FK:
|
||
// if (!object.getBoolean("sound")) {
|
||
// AppLogUtil.reportAppLog(AppLogEvent.A050702);
|
||
// }
|
||
// break;
|
||
// }
|
||
// break;
|
||
// }
|
||
// } catch (Exception e) {
|
||
// e.printStackTrace();
|
||
// }
|
||
// }
|
||
// });
|
||
}
|
||
|
||
private void quitLiveRoom() {
|
||
// if (!TextUtils.isEmpty(BaseApplication.getInstance().playId)) {
|
||
// NewApi.getInstance().quit(BaseApplication.getInstance().playId, new com.qpyy.libcommon.api.BaseObserver<String>(false, false) {
|
||
// @Override
|
||
// public void onSubscribe(Disposable d) {
|
||
//
|
||
// }
|
||
//
|
||
// @Override
|
||
// public void onNext(String s) {
|
||
//
|
||
// }
|
||
//
|
||
// @Override
|
||
// public void onComplete() {
|
||
//
|
||
// }
|
||
// });
|
||
// }
|
||
|
||
}
|
||
|
||
// 调用示例:
|
||
// window.bridge.common('{"type":"joinStreamLiveRoom","params":{"roomId":"12445435","userId":"12323 ","mute":false}}');
|
||
// 调用顺序:
|
||
// 1、加入直播间 joinStreamLiveRoom
|
||
// 2、开始推流 startPublishingStreamLiveRoom
|
||
// 3、打开麦克风 muteMicrophoneLiveRoom
|
||
|
||
/*
|
||
加入直播间 joinStreamLiveRoom
|
||
params :
|
||
{
|
||
"roomId":"房间id",
|
||
}
|
||
*/
|
||
public static final String JOIN_LIVE_ROOM = "joinStreamLiveRoom";
|
||
|
||
/*
|
||
离开流房间 推拉流 leaveStreamLiveRoom
|
||
params :
|
||
{
|
||
"roomId":"房间id",
|
||
}
|
||
*/
|
||
public static final String LEAVE_LIVE_ROOM = "leaveStreamLiveRoom";
|
||
|
||
/*
|
||
开始推流 startPublishingStreamLiveRoom
|
||
params :
|
||
{
|
||
"roomId":"房间id",
|
||
"userId":"用户ID"
|
||
}
|
||
*/
|
||
public static final String ROOM_START_PUBLISH_STREAM = "startPublishingStreamLiveRoom";
|
||
|
||
/*
|
||
停止推流 stopPublishingStreamLiveRoom
|
||
params :
|
||
{
|
||
"roomId":"房间id",
|
||
"userId":"用户ID"
|
||
}
|
||
*/
|
||
public static final String ROOM_STOP_PUBLISH_STREAM = "stopPublishingStreamLiveRoom";
|
||
|
||
/*
|
||
是否屏蔽远端所有声音 muteSpeakerLiveRoom
|
||
params :
|
||
{
|
||
mute:true // true为关闭,false为打开
|
||
}
|
||
*/
|
||
public static final String ROOM_MUTE_LOCAL = "muteSpeakerLiveRoom";
|
||
|
||
/*
|
||
是否静音(关闭)麦克风 muteMicrophoneLiveRoom
|
||
params :
|
||
{
|
||
mute:true // true为关闭,false为打开
|
||
}
|
||
*/
|
||
public static final String ROOM_MUTE_MICROPHONE = "muteMicrophoneLiveRoom";
|
||
|
||
|
||
/*
|
||
点击消息按钮 onMessageBtnClick
|
||
params :
|
||
{
|
||
}
|
||
*/
|
||
public static final String ROOM_SHOW_MESSAGE_DIALOG = "onMessageBtnClick";
|
||
|
||
|
||
//关闭按钮
|
||
public static final String ON_CLOSE_BTN_CLICK = "onCloseBtnClick";
|
||
|
||
}
|