whychdw
2019-12-20 0a707989b1e298d6c22575ef573b6a4f65d0e036
platforms/android/app/src/main/java/io/cordova/hellocordova/MainActivity.java
@@ -19,16 +19,16 @@
package io.cordova.hellocordova;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Rect;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.ViewTreeObserver;
import android.view.WindowManager;
import android.webkit.WebView;
import com.fgkj.action.JsInterface;
import com.fgkj.dao.DBHelper;
import com.fgkj.dao.SQLdm;
import com.fgkj.dto.Battresdata;
import com.fgkj.dto.Batttestdata_inf;
import com.fgkj.service.Battalram_dataService;
import com.fgkj.service.BattinfService;
import com.fgkj.service.BattresdataService;
@@ -43,6 +43,7 @@
{
    public WebView webview;
    public DBHelper dbHelper;
    boolean isShow = false;
    @Override
    public void onCreate(Bundle savedInstanceState)
@@ -57,15 +58,15 @@
        // Set by <content src="index.html" /> in config.xml
        loadUrl(launchUrl);
        dbHelper=new DBHelper(this,"fbs9600.db", null, 1);
        webview = findViewById(appView.getView().getId());
        // 添加事件
        webview.addJavascriptInterface(new JsInterface(this, webview,MainActivity.this), JsInterface.JS_INTERFACE_NAME);
        //添加设备通讯相关接口
        webview.addJavascriptInterface(new FBS9600S_DeviceService(webview,dbHelper), FBS9600S_DeviceService.JS_INTERFACE_NAME);
       //tb_battinf表的操作
        //tb_battinf表的操作
        webview.addJavascriptInterface(new BattinfService(webview, dbHelper),BattinfService.BATTINFSERVICE_NAME);
        //tb_batttestdata表的操作
        webview.addJavascriptInterface(new BatttestdataService(webview, dbHelper),BatttestdataService.BATTTESTDATASERVICE_NAME);
@@ -77,6 +78,31 @@
        webview.addJavascriptInterface(new Battresdata_infService(webview, dbHelper),Battresdata_infService.BATTRESDATA_INFSERVICE_NAME);
        //添加告警接口
        webview.addJavascriptInterface(new Battalram_dataService(webview,dbHelper),Battalram_dataService.BATTALRAM_DATASERVICE_NAME);
        //监听键盘显示和隐藏事件
        this.webview.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {
                Rect rect = new Rect();
                webview.getWindowVisibleDisplayFrame(rect);
                int displayHeight = rect.bottom - rect.top;
                int height = webview.getHeight();
                boolean visible = (double) displayHeight / height < 0.8;
                if (visible) {
                    if(!isShow){
                        //隐藏状态栏,并且不显示字体
                        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
                        Log.e(TAG, "软键盘显示");
                        isShow = true;
                    }
                } else {
                    isShow = false;
                    Log.e(TAG, "软键盘隐藏");
                    hideSystemMenu();
                }
            }
        });
    }
    @Override
@@ -84,4 +110,22 @@
        dbHelper.close();
        super.onDestroy();
    }
    /**
     * 隐藏系统菜单栏
     */
    public void hideSystemMenu(){
        int uiOptions = View.SYSTEM_UI_FLAG_LAYOUT_STABLE |
                //布局位于状态栏下方
                View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION |
                //全屏
                View.SYSTEM_UI_FLAG_FULLSCREEN |
                //隐藏导航栏
                View.SYSTEM_UI_FLAG_HIDE_NAVIGATION |
                View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN;
        uiOptions |= 0x00001000;
        getWindow().getDecorView().setSystemUiVisibility(uiOptions);
    }
}