/*
|
Licensed to the Apache Software Foundation (ASF) under one
|
or more contributor license agreements. See the NOTICE file
|
distributed with this work for additional information
|
regarding copyright ownership. The ASF licenses this file
|
to you under the Apache License, Version 2.0 (the
|
"License"); you may not use this file except in compliance
|
with the License. You may obtain a copy of the License at
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
Unless required by applicable law or agreed to in writing,
|
software distributed under the License is distributed on an
|
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
KIND, either express or implied. See the License for the
|
specific language governing permissions and limitations
|
under the License.
|
*/
|
|
package io.cordova.hellocordova;
|
|
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.service.Battalram_dataService;
|
import com.fgkj.service.BattinfService;
|
import com.fgkj.service.BattresdataService;
|
import com.fgkj.service.Battresdata_infService;
|
import com.fgkj.service.BatttestdataService;
|
import com.fgkj.service.Batttestdata_infService;
|
import com.socket.FBS9600S_DeviceService;
|
|
import org.apache.cordova.*;
|
|
public class MainActivity extends CordovaActivity
|
{
|
public WebView webview;
|
public DBHelper dbHelper;
|
boolean isShow = false;
|
|
@Override
|
public void onCreate(Bundle savedInstanceState)
|
{
|
super.onCreate(savedInstanceState);
|
|
// enable Cordova apps to be started in the background
|
Bundle extras = getIntent().getExtras();
|
if (extras != null && extras.getBoolean("cdvStartInBackground", false)) {
|
moveTaskToBack(true);
|
}
|
|
// 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表的操作
|
webview.addJavascriptInterface(new BattinfService(webview, dbHelper),BattinfService.BATTINFSERVICE_NAME);
|
//tb_batttestdata表的操作
|
webview.addJavascriptInterface(new BatttestdataService(webview, dbHelper),BatttestdataService.BATTTESTDATASERVICE_NAME);
|
//tb_batttestdata_inf表的操作
|
webview.addJavascriptInterface(new Batttestdata_infService(webview, dbHelper),Batttestdata_infService.BATTTESTDATA_INFSERVICE_NAME);
|
//tb_battresdata表的操作
|
webview.addJavascriptInterface(new BattresdataService(webview, dbHelper),BattresdataService.BATTRESDATASERVICE_NAME);
|
//tb_battresdata_inf表的操作
|
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
|
public void onDestroy() {
|
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);
|
}
|
|
|
}
|