diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index b20168c..dab2056 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -2,8 +2,13 @@ - + + + + + uploadFile;//定义接受返回值 + private ValueCallback uploadFiles; +// private ProgressBar bar; +// private TextView mTitle; + + public BaseWebChromeClient(Activity mActivity) { + this.mActivity = mActivity; +// this.bar=bar; +// this.mTitle=title; + } + + @Override + public void onProgressChanged(WebView view, int newProgress) { + if (newProgress == 100) { +// bar.setVisibility(View.INVISIBLE); + } else { +// if (View.INVISIBLE == bar.getVisibility()) { +// bar.setVisibility(View.VISIBLE); +// } +// bar.setProgress(newProgress); + } + super.onProgressChanged(view, newProgress); + } + + @Override + + public void onReceivedTitle(WebView view, String title) { + + super.onReceivedTitle(view, title); + + +// mTitle.setText(title); + + } + + @TargetApi(Build.VERSION_CODES.LOLLIPOP) + @Override + public void onPermissionRequest(PermissionRequest request) { + // super.onPermissionRequest(request);//必须要注视掉 + request.grant(request.getResources()); + } + + // For Android 3.0+ + public void openFileChooser(ValueCallback uploadMsg, String acceptType) { + this.uploadFile = uploadFile; + openFileChooseProcess(); + } + + // For Android < 3.0 + public void openFileChooser(ValueCallback uploadMsgs) { + this.uploadFile = uploadFile; + openFileChooseProcess(); + } + + // For Android > 4.1.1 +// @Override + public void openFileChooser(ValueCallback uploadMsg, String acceptType, String capture) { + this.uploadFile = uploadFile; + openFileChooseProcess(); + } + + // For Android >= 5.0 + @Override + public boolean onShowFileChooser(WebView webView, + ValueCallback filePathCallback, + WebChromeClient.FileChooserParams fileChooserParams) { + this.uploadFiles = filePathCallback; + openFileChooseProcess(); + return true; + } + + private void openFileChooseProcess() { + Intent i = new Intent(Intent.ACTION_GET_CONTENT); + i.addCategory(Intent.CATEGORY_OPENABLE); + i.setType("image/*"); + mActivity.startActivityForResult(Intent.createChooser(i, "Choose"), CHOOSE_REQUEST_CODE); + } + + public void onActivityResult(int requestCode, int resultCode, Intent data) { + if (resultCode == Activity.RESULT_OK) { + switch (requestCode) { + case CHOOSE_REQUEST_CODE: + if (null != uploadFile) { + Uri result = data == null || resultCode != Activity.RESULT_OK ? null + : data.getData(); + uploadFile.onReceiveValue(result); + uploadFile = null; + } + if (null != uploadFiles) { + Uri result = data == null || resultCode != Activity.RESULT_OK ? null + : data.getData(); + uploadFiles.onReceiveValue(new Uri[]{result}); + uploadFiles = null; + } + break; + default: + break; + } + } else if (resultCode == Activity.RESULT_CANCELED) { + if (null != uploadFile) { + uploadFile.onReceiveValue(null); + uploadFile = null; + } + if (null != uploadFiles) { + uploadFiles.onReceiveValue(null); + uploadFiles = null; + } + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/nsgk/ruralWeb/FullscreenActivity.java b/app/src/main/java/com/nsgk/ruralWeb/FullscreenActivity.java index 82fcbcd..c0d56b3 100644 --- a/app/src/main/java/com/nsgk/ruralWeb/FullscreenActivity.java +++ b/app/src/main/java/com/nsgk/ruralWeb/FullscreenActivity.java @@ -1,6 +1,7 @@ package com.nsgk.ruralWeb; import android.annotation.SuppressLint; +import android.content.Intent; import android.os.Bundle; import android.view.KeyEvent; import android.webkit.WebResourceRequest; @@ -9,6 +10,7 @@ import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.EditText; +import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; @@ -23,6 +25,8 @@ public class FullscreenActivity extends AppCompatActivity { private SensorManagerHelper sensorManagerHelper; + private BaseWebChromeClient chromeClient; + @SuppressLint("SetJavaScriptEnabled") @Override protected void onCreate(Bundle savedInstanceState) { @@ -33,10 +37,12 @@ public class FullscreenActivity extends AppCompatActivity { WebSettings settings = mWebView.getSettings(); settings.setJavaScriptEnabled(true); - mWebView.setWebViewClient(new WebViewClient(){ + this.setWebSettings(mWebView); + + mWebView.setWebViewClient(new WebViewClient() { @Override public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) { - return false; + return false; } }); EditText textView = new EditText(this); @@ -44,10 +50,12 @@ public class FullscreenActivity extends AppCompatActivity { AlertDialog alertDialog = new AlertDialog.Builder(this) .setView(textView) .setTitle("修改地址") - .setPositiveButton("确定", (dialogInterface, i) -> mWebView.loadUrl("http://"+textView.getText().toString())) + .setPositiveButton("确定", (dialogInterface, i) -> mWebView.loadUrl("http://" + textView.getText().toString())) .create(); - mWebView.loadUrl("http://116.255.135.38:86/authenticRight/login"); + mWebView.loadUrl("http://116.255.135.38:89/homestead/login"); + chromeClient = new BaseWebChromeClient(this); + mWebView.setWebChromeClient(chromeClient); sensorManagerHelper = new SensorManagerHelper(this); sensorManagerHelper.setOnShakeListener(alertDialog::show); @@ -55,10 +63,39 @@ public class FullscreenActivity extends AppCompatActivity { @Override public boolean onKeyDown(int keyCode, KeyEvent event) { - if(keyCode == KeyEvent.KEYCODE_BACK && mWebView.canGoBack()){ + if (keyCode == KeyEvent.KEYCODE_BACK && mWebView.canGoBack()) { mWebView.goBack(); return true; } return super.onKeyDown(keyCode, event); } + + public void setWebSettings(WebView mView) { + WebSettings setting = mView.getSettings(); + //支持Js + setting.setJavaScriptEnabled(true); + setting.setJavaScriptCanOpenWindowsAutomatically(true); + //缓存模式 + setting.setCacheMode(WebSettings.LOAD_DEFAULT); + //支持内容重新布局 + setting.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN); + //将图片调整到适合webview的大小 + setting.setUseWideViewPort(true); + setting.setLoadWithOverviewMode(true); + //设置可以访问文件 + setting.setAllowFileAccess(true); + //支持自动加载图片 + setting.setLoadsImagesAutomatically(true); + try { + setting.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW); + } catch (NoSuchMethodError e) { + e.printStackTrace(); + } + } + + @Override + protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { + chromeClient.onActivityResult(requestCode, resultCode, data); + super.onActivityResult(requestCode, resultCode, data); + } } \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f67795d..209ef0d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,5 +1,5 @@ - 抽样调查 + 两清三化 Dummy Button DUMMY\nCONTENT \ No newline at end of file