123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289 |
- package com.edufound.mobile.interfaces;
- import android.app.Activity;
- import android.app.AlertDialog;
- import android.content.DialogInterface;
- import android.content.Intent;
- import android.media.MediaPlayer;
- import android.view.KeyEvent;
- import android.webkit.JavascriptInterface;
- import com.edufound.mobile.R;
- import com.edufound.mobile.activity.IJKPlayerActivity;
- import com.edufound.mobile.activity.VideoActivity;
- import com.edufound.mobile.application.EApplication;
- import com.edufound.mobile.bean.UpgradeBean;
- import com.edufound.mobile.main.MainView;
- import com.edufound.mobile.pay.PayInit;
- import com.edufound.mobile.util.ContextUtil;
- import com.edufound.mobile.util.Logger;
- import com.edufound.mobile.util.SPutil;
- import com.edufound.mobile.util.ShowDebugUrl;
- import com.edufound.mobile.util.ShowDevice;
- import com.edufound.mobile.util.ShowSetting;
- import com.edufound.mobile.util.ToastUtil;
- import com.edufound.mobile.util.UpdateUtil;
- import com.google.gson.Gson;
- 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.security.interfaces.ECKey;
- import java.util.HashMap;
- import java.util.Map;
- public class JsInterfaces {
- Gson mGson;
- MainView mView;
- MediaPlayer mediaPlayer;
- 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);
- }
- }
- 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) {
- 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 showDeviceInfo() {
- ShowDevice.getInstance().show(mView.getActivity());
- }
- @JavascriptInterface
- public void showChoseVideo() {
- ShowSetting.getInstance().show(mView.getActivity());
- }
- @JavascriptInterface
- public void showDebugDialog() {
- ShowDebugUrl.getInstance().show(mView);
- }
- }
|