管灌系统巡查员智能手机App
zuoxiao
2024-02-01 3a161aeef6dfe08aa80fca6fb2c1650ebdd31d59
app/src/main/java/com/dayu/pipirrapp/fragment/MapFragment.java
@@ -4,6 +4,8 @@
import android.content.Intent;
import android.location.LocationManager;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
@@ -19,8 +21,10 @@
import androidx.lifecycle.LifecycleOwner;
import com.dayu.pipirrapp.databinding.FragmentMapBinding;
import com.dayu.pipirrapp.js.MyWebViewInterface;
import com.dayu.pipirrapp.observer.MapFragmenObserver;
import com.dayu.pipirrapp.service.MyLocationService;
import com.dayu.pipirrapp.utils.MyLog;
import com.dayu.pipirrapp.utils.ToastUtil;
import java.util.List;
@@ -52,11 +56,12 @@
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        binding = FragmentMapBinding.inflate(inflater, container, false);
        Log.i("MapFragment", "onCreateView");
        mWebView = binding.webView;
        initWebView();
        mWebView.loadUrl("http://192.168.3.178:3002/");
        mWebView.loadUrl("http://192.168.3.178:3000/");
        initView();
        //开启定位
        Intent location = new Intent(this.getActivity(), MyLocationService.class);
@@ -113,18 +118,19 @@
//        LOAD_CACHE_ELSE_NETWORK: 只要本地有,无论是否过期,或者 no-cache,都使用缓存中的数据
//        LOAD_NO_CACHE: 不使用缓存,只从网络获取数据
//        LOAD_CACHE_ONLY: 不使用网络,只读取本地缓存数据
// js 相关
        // js 相关
        webSettings.setJavaScriptEnabled(true); // 支持 js。如果碰到后台无法释放 js 导致耗电,应在 onStop 和 onResume 里分别设成 false 和 true
//        mWebView.addJavascriptInterface(new WebAppInterface(this), "android"); // js 接口
       //        mWebView.addJavascriptInterface(new WebAppInterface(this), "android"); // js 接口
//        webSettings.setPluginsEnabled(true); // 支持插件
// 设置自适应屏幕,两者合用
        //        webSettings.setPluginsEnabled(true); // 支持插件
        // 设置自适应屏幕,两者合用
        webSettings.setUseWideViewPort(true); // 将图片调整到适合 WebView 的大小
        webSettings.setLoadWithOverviewMode(true); // 缩放至屏幕的大小
// 缩放操作
        // 缩放操作
        webSettings.setSupportZoom(true); // 支持缩放,默认为 true
        webSettings.setBuiltInZoomControls(true); // 设置内置的缩放控件,若为 false,则该 WebView 不可缩放
        webSettings.setDisplayZoomControls(false); // 隐藏原生的缩放控件
        webSettings.setLoadsImagesAutomatically(true);//预加载
        //webView弹JsAlert
        mWebView.setWebChromeClient(new WebChromeClient() {
            @Override
@@ -132,15 +138,27 @@
                return super.onJsAlert(view, url, message, result);
            }
        });
        MyWebViewInterface myWebViewInterface=new MyWebViewInterface(this);
        mWebView.addJavascriptInterface(myWebViewInterface,"Android");
    }
    void initView() {
        binding.flyBtn.setOnClickListener(v -> {
            mWebView.evaluateJavascript("javascript:moveTo(116.399565,39.89432)", value -> {
            mWebView.evaluateJavascript("javascript:locationOverLay(116.399565,39.89432)", value -> {
            });
        });
    }
    public void showWaterIntakeDetail(String data){
        MyLog.i(data);
        binding.bottomLL.setVisibility(View.VISIBLE);
    }
    public void closeWaterIntakeDetail(){
        binding.bottomLL.setVisibility(View.GONE);
    }
}