Files
midi-android/moduleUtil/src/main/java/com/xscm/moduleutil/activity/WebViewBridgeConfig.java

396 lines
16 KiB
Java
Raw Normal View History

2025-08-26 19:34:44 +08:00
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";
}