123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467 |
- package com.edufound.android.xyyf.interfaces;
- import android.app.AlertDialog;
- import android.content.DialogInterface;
- import android.content.Intent;
- import android.graphics.Color;
- import android.media.MediaPlayer;
- import android.view.KeyEvent;
- import android.webkit.JavascriptInterface;
- import com.alibaba.fastjson.JSON;
- import com.edufound.android.xyyf.R;
- import com.edufound.android.xyyf.activity.IJKPlayerActivity;
- import com.edufound.android.xyyf.activity.VideoActivity;
- import com.edufound.android.xyyf.application.EApplication;
- import com.edufound.android.xyyf.bean.MessageDialogBean;
- import com.edufound.android.xyyf.bean.UpgradeBean;
- import com.edufound.android.xyyf.config.AppUtils;
- import com.edufound.android.xyyf.config.AuthPageConfig;
- import com.edufound.android.xyyf.config.BaseUIConfig;
- import com.edufound.android.xyyf.main.MainView;
- import com.edufound.android.xyyf.pay.PayInit;
- import com.edufound.android.xyyf.util.ContextUtil;
- import com.edufound.android.xyyf.util.Logger;
- import com.edufound.android.xyyf.util.OKHttpUtil;
- import com.edufound.android.xyyf.util.SPutil;
- import com.edufound.android.xyyf.util.ShowDebugUrl;
- import com.edufound.android.xyyf.util.ShowDevice;
- import com.edufound.android.xyyf.util.ShowSetting;
- import com.edufound.android.xyyf.util.ToastUtil;
- import com.edufound.android.xyyf.util.UpdateUtil;
- import com.google.gson.Gson;
- import com.mobile.auth.gatewayauth.PhoneNumberAuthHelper;
- import com.mobile.auth.gatewayauth.ResultCode;
- import com.mobile.auth.gatewayauth.TokenResultListener;
- import com.mobile.auth.gatewayauth.model.InitResult;
- import com.mobile.auth.gatewayauth.model.TokenRet;
- import com.tencent.mm.opensdk.modelbiz.WXLaunchMiniProgram;
- import com.tencent.mm.opensdk.modelmsg.SendAuth;
- import java.io.IOException;
- import java.lang.reflect.Method;
- import java.util.HashMap;
- import java.util.Map;
- import okhttp3.Request;
- public class JsInterfaces {
- Gson mGson;
- MainView mView;
- MediaPlayer mediaPlayer;
- AlertDialog.Builder mMessageDialogBuilder;
- MessageDialogBean mMessageBean;
- PhoneNumberAuthHelper mPhoneNumberAuthHelperl;
- String mSecret = "RCV62WOrD1Dcypp4qiwqlLWsPf9jGQ9SzBKaUms/VuDvggYsJBmeFvQqkc6ptBBmTbKfRsB2zhXUQP+6meKyA/7TQbde3uLfVnhihmKahXTpaKYhjwZRT4R4VCZtq8umnzZTQPENjUiz/Hdd45EKA/OhTtXodbfEo+j6o79xukkjApKaF3qlSqPylppOAavtiGOKEVhZSLhPyQQDOdqTre4EfWJ07T4reo2oObslQqlZamXqzHkp/K+5M+xIPsxk6c14Oypu/EEJMCjzIP8aHdqa01PWcycKFz9Fbn0Q9/tFJ7yWNfHkuJQH/w6JV41q";
- public final String GET_USER_PHONENUMBER_URL = "http://ott80test-api.efunbox.cn:81/member/getMobile";
- public JsInterfaces(MainView view) {
- mGson = new Gson();
- mView = view;
- if (mediaPlayer == null) {
- mediaPlayer = new MediaPlayer();
- mediaPlayer.reset();
- mediaPlayer = MediaPlayer.create(mView.getActivity(), R.raw.click_music);
- }
- mPhoneNumberAuthHelperl = PhoneNumberAuthHelper.getInstance(mView.getActivity(), tokenResultListener);
- mPhoneNumberAuthHelperl.setAuthSDKInfo(mSecret);
- }
- Map<String, String> jsMap = new HashMap<>();
- /*
- * 关闭应用方法
- * */
- @JavascriptInterface
- public void closeApp() {
- EApplication.clearActivity();
- }
- /*
- * 根据key设置SP参数方法
- * */
- @JavascriptInterface
- public void setPreData(String key, String json_data) {
- SPutil.setPrefString(ContextUtil.getContext(), key, json_data);
- }
- /*
- * 根据key获取SP参数方法
- * */
- @JavascriptInterface
- public String getPreData(String key) {
- return SPutil.getPrefString(ContextUtil.getContext(), key, "");
- }
- /*
- * 根据key删除SP参数
- * */
- @JavascriptInterface
- public void delPreData(String key) {
- SPutil.clearRecourds(ContextUtil.getContext(), key);
- }
- /*
- * 设置map参数方法
- * */
- @JavascriptInterface
- public void setStorageByKey(String key, String data) {
- jsMap.put(key, data);
- }
- /*
- * 获取map里参数
- *
- * */
- @JavascriptInterface
- public String getStorageByKey(String key) {
- return jsMap.get(key).toString();
- }
- /*
- * 清空map
- * */
- @JavascriptInterface
- public void clearStorage() {
- jsMap.clear();
- }
- /*
- * 播放视频方法
- * */
- @JavascriptInterface
- public void playVideo(String play_jsons, int play_index, int play_type, String moduleType) {
- //可能要改播放器的逻辑
- Logger.e("play_jsons:" + play_jsons);
- Logger.e("play_index:" + play_index);
- Logger.e("play_type:" + play_type);
- Logger.e("moduleType:" + moduleType);
- Intent intent = new Intent();
- int selectid = SPutil.getPrefInt(mView.getActivity(), SPutil.videoType, 0);
- switch (selectid) {
- case SPutil.VIDEO_VIDEOVIEW:
- intent.setClass(mView.getActivity(), VideoActivity.class);
- break;
- case SPutil.VIDEO_IJKPLAYER:
- intent.setClass(mView.getActivity(), IJKPlayerActivity.class);
- break;
- default:
- intent.setClass(mView.getActivity(), IJKPlayerActivity.class);
- break;
- }
- intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- intent.putExtra("play_jsons", play_jsons);
- intent.putExtra("play_index", play_index);
- intent.putExtra("play_type", play_type);
- intent.putExtra("play_moduletype", moduleType);
- mView.getActivity().startActivity(intent);
- }
- //JS调用方法,设置播放器
- @JavascriptInterface
- public void setPlayType(int type) {
- // ToastUtil.showToast("setPlayType:" + type);
- int toType = 0;
- switch (type) {
- case 2:
- // ToastUtil.showToast("已选择默认播放器");
- toType = SPutil.VIDEO_VIDEOVIEW;
- break;
- case 1:
- toType = SPutil.VIDEO_IJKPLAYER;
- // ToastUtil.showToast("已选择IJKPlayer播放器");
- break;
- }
- SPutil.setPrefInt(ContextUtil.getContext(), SPutil.videoType, toType);
- }
- //JS调用方法,获取system系统参数
- @JavascriptInterface
- public String getProperty(String key, String defaultValue) {
- String value = defaultValue;
- try {
- Class<?> c = Class.forName("android.os.SystemProperties");
- Method get = c.getMethod("get", String.class, String.class);
- value = (String) (get.invoke(c, key, "unknown"));
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- return value;
- }
- }
- /*
- * 自升级方法
- * */
- @JavascriptInterface
- public void upgradeApp(String infoJson) {
- // 测试json {'title': '升级','type': '1','context': '修正登录异常','download_url':
- // 'http://www.baidu.com'}
- Logger.DebugE("升级提示框:" + infoJson);
- final UpgradeBean entity = mGson.fromJson(infoJson, UpgradeBean.class);
- AlertDialog.Builder builder = new AlertDialog.Builder(mView.getActivity());
- builder.setTitle(entity.title);
- builder.setMessage(entity.context);
- // 判断type,如果是,1、可选升级;2、强制升级
- if (Integer.valueOf(entity.type) == 1) {
- builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- // TODO Auto-generated method stub
- dialog.dismiss();
- }
- });
- }
- builder.setPositiveButton("升级", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- // TODO Auto-generated method stub
- // 这里做升级操作
- new Thread(new Runnable() {
- @Override
- public void run() {
- UpdateUtil uputil = new UpdateUtil(mView.getActivity());
- try {
- uputil.down_file(entity.download_url);
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }).start();
- }
- });
- AlertDialog dialog = builder.create();
- dialog.setOnKeyListener(new DialogInterface.OnKeyListener() {
- @Override
- public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
- // TODO Auto-generated method stub
- if (event.getKeyCode() == KeyEvent.KEYCODE_BACK || event.getKeyCode() == KeyEvent.KEYCODE_ESCAPE) {
- return true;
- }
- return false;
- }
- });
- dialog.show();
- }
- //JS条用方法,调起微信登录
- @JavascriptInterface
- public void WeChatLogin() {
- if (!PayInit.getInstance().WX_API.isWXAppInstalled()) {
- ToastUtil.showToast("请安装微信");
- } else {
- final SendAuth.Req req = new SendAuth.Req();
- req.scope = "snsapi_userinfo";
- req.state = "wechat_sdk_demo_test";
- PayInit.getInstance().WX_API.sendReq(req);
- }
- }
- @JavascriptInterface
- public void clickMusic(String left, String right) {
- if (mediaPlayerType == 0) {
- } else {
- mediaPlayerType = 0;
- mediaPlayer = new MediaPlayer();
- mediaPlayer.reset();
- mediaPlayer = MediaPlayer.create(mView.getActivity(), R.raw.click_music);
- mediaPlayer.setVolume(Float.valueOf(left), Float.valueOf(right));
- }
- mediaPlayer.start();
- }
- int mediaPlayerType = -1;
- @JavascriptInterface
- public void startWrong(String left, String right) {
- if (mediaPlayerType == 1) {
- } else {
- mediaPlayerType = 1;
- mediaPlayer = new MediaPlayer();
- mediaPlayer.reset();
- mediaPlayer = MediaPlayer.create(mView.getActivity(), R.raw.wronganswer);
- mediaPlayer.setVolume(Float.valueOf(left), Float.valueOf(right));
- }
- mediaPlayer.start();
- }
- @JavascriptInterface
- public void startCorrect(String left, String right) {
- if (mediaPlayerType == 2) {
- } else {
- mediaPlayerType = 2;
- mediaPlayer = new MediaPlayer();
- mediaPlayer.reset();
- mediaPlayer = MediaPlayer.create(mView.getActivity(), R.raw.correctanswer);
- mediaPlayer.setVolume(Float.valueOf(left), Float.valueOf(right));
- }
- mediaPlayer.start();
- }
- public void desClickMusic() {
- mediaPlayer = null;
- }
- @JavascriptInterface
- public void toMiniProgram(String programId, String path) {
- if (!PayInit.getInstance().WX_API.isWXAppInstalled()) {
- ToastUtil.showToast("请安装微信");
- return;
- }
- WXLaunchMiniProgram.Req req = new WXLaunchMiniProgram.Req();
- req.userName = programId; // 填小程序原始id
- req.path = path; //拉起小程序页面的可带参路径,不填默认拉起小程序首页
- req.miniprogramType = WXLaunchMiniProgram.Req.MINIPTOGRAM_TYPE_RELEASE;// 可选打开 开发版,体验版和正式版
- PayInit.getInstance().WX_API.sendReq(req);
- }
- @JavascriptInterface
- public void setBackGround(String color) {
- mView.getWebView().setBackgroundColor(Color.parseColor(color));
- }
- @JavascriptInterface
- public void showDeviceInfo() {
- ShowDevice.getInstance().show(mView.getActivity());
- }
- @JavascriptInterface
- public void showChoseVideo() {
- ShowSetting.getInstance().show(mView.getActivity());
- }
- @JavascriptInterface
- public void showDebugDialog() {
- ShowDebugUrl.getInstance().show(mView);
- }
- @JavascriptInterface
- public void showMessageDialog(String json) {
- Logger.e("showMessageDialog--json:" + json);
- if (mMessageDialogBuilder == null) {
- mMessageDialogBuilder = new AlertDialog.Builder(mView.getActivity());
- }
- mMessageBean = mGson.fromJson(json, MessageDialogBean.class);
- mMessageDialogBuilder.setIcon(R.drawable.icon);
- mMessageDialogBuilder.setTitle(mMessageBean.title);
- mMessageDialogBuilder.setMessage(mMessageBean.message);
- mMessageDialogBuilder.setPositiveButton(mMessageBean.buttontext, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- dialog.dismiss();
- }
- });
- mMessageDialogBuilder.create().show();
- }
- @JavascriptInterface
- public void showToast(String message) {
- ToastUtil.showToast(message);
- }
- ///-----------------------小窗口播放方法
- @JavascriptInterface
- public void setWindowVideoParams(String params_json) {
- // mView.setVideoFragment(params_json);
- }
- @JavascriptInterface
- public void showDateView(final int show_type) {
- mView.getPersenter().showDateView(show_type);
- }
- public int getdp(int num) {
- return AppUtils.dp2px(mView.getActivity(), num);
- }
- @JavascriptInterface
- public void showPhoneNumberLogin(int type) {
- AuthPageConfig mUIConfig = BaseUIConfig.init(type, mView.getActivity(), mPhoneNumberAuthHelperl, mView);
- mUIConfig.configAuthPage();
- mPhoneNumberAuthHelperl.getLoginToken(mView.getActivity(), 5000);
- }
- @JavascriptInterface
- public void showPhoneNumberLogin() {
- AuthPageConfig mUIConfig = BaseUIConfig.init(2, mView.getActivity(), mPhoneNumberAuthHelperl, mView);
- mUIConfig.configAuthPage();
- mPhoneNumberAuthHelperl.getLoginToken(mView.getActivity(), 5000);
- }
- public void quitLoginPage() {
- mPhoneNumberAuthHelperl.quitLoginPage();
- }
- public void NOUILOGIN() {
- // AuthPageConfig mUIConfig = BaseUIConfig.init(1, mView.getActivity(), mPhoneNumberAuthHelperl,mView);
- // mUIConfig.configAuthPage();
- // mPhoneNumberAuthHelperl.getLoginToken(mView.getActivity(), 5000);
- }
- TokenResultListener tokenResultListener = new TokenResultListener() {
- @Override
- public void onTokenSuccess(String s) {
- Logger.e("sssss:" + s);
- TokenRet tokenRet = null;
- try {
- tokenRet = JSON.parseObject(s, TokenRet.class);
- if (ResultCode.CODE_START_AUTHPAGE_SUCCESS.equals(tokenRet.getCode())) {
- // Logger.e("唤起授权页成功:" + s);
- mPhoneNumberAuthHelperl.hideLoginLoading();
- // ToastUtil.showToast(s);
- }
- if (ResultCode.CODE_GET_TOKEN_SUCCESS.equals(tokenRet.getCode())) {
- // Logger.e("获取token成功:" + s);
- // ToastUtil.showToast(s);
- mPhoneNumberAuthHelperl.hideLoginLoading();
- mPhoneNumberAuthHelperl.quitLoginPage();
- String token = JSON.parseObject(s).get("token").toString();
- OKHttpUtil.postDataAsync(GET_USER_PHONENUMBER_URL, new OKHttpUtil.ResultCallback() {
- @Override
- public void onError(Request request, Exception e) {
- Logger.e("error-------------");
- }
- @Override
- public void onResponse(Object response) {
- String a = JSON.parseObject(response.toString()).getString("data").toString();
- // ToastUtil.showToast(a);
- mView.loadJsMehtod("phoneLogin('" + a + "')");
- }
- }, new OKHttpUtil.Param("accessToken", token));
- //
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- @Override
- public void onTokenFailed(String s) {
- // Logger.e("失败了:" + s);
- // ToastUtil.showToast("失败了:" + s);
- mView.loadJsMehtod("closeLogin()");
- }
- };
- }
|