pangweixin 5 anos atrás
pai
commit
f2e6f3d220

+ 2 - 1
app/src/main/AndroidManifest.xml

@@ -19,7 +19,8 @@
         android:roundIcon="@mipmap/ic_launcher_round"
         android:supportsRtl="true"
         android:theme="@style/Theme.HomeCareSAS">
-        <activity android:name=".weiview.WebViewActivity" />
+        <activity android:name=".weiview.WebViewActivity"
+            android:screenOrientation="landscape"/>
         <activity
             android:name=".activity.MainActivity"
             android:exported="true">

+ 12 - 11
app/src/main/java/com/qingdaofushan/home/activity/MainActivity.java

@@ -61,12 +61,12 @@ public class MainActivity extends AppCompatActivity {
         findViewById(R.id.start).setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                initApp("https://pwxmax.cn/homeLifemini.zip", 1);
+//                initApp("https://pwxmax.cn/fshome.zip", 0);
 //                mServerManager.startServer();
-//                Intent intent = new Intent(MainActivity.this, WebViewActivity.class);
-//                intent.putExtra("url", editText.getText().toString());
+                Intent intent = new Intent(MainActivity.this, WebViewActivity.class);
+                intent.putExtra("url", editText.getText().toString());
 //                intent.putExtra("url", "http://127.0.0.1:8080");
-//                startActivity(intent);
+                startActivity(intent);
             }
         });
     }
@@ -83,7 +83,8 @@ public class MainActivity extends AppCompatActivity {
                             // 初始化HTTP服务
                             mServerManager = new ServerManager(MainActivity.this);
                             mServerManager.register();
-                            getVM();
+//                            getVM();
+//                            initApp("https://pwxmax.cn/friday.zip", 1);
                         } else {
                             initPermission();
                             ToastUtil.showToast("获取部分权限成功,但部分权限未正常授予");
@@ -104,9 +105,9 @@ public class MainActivity extends AppCompatActivity {
     }
 
     private void initApp(String appWebUrl, int updataType) {
-        OkDownload.getInstance().setFolder(Environment.getExternalStorageDirectory().getAbsolutePath() + "/homeLife/");
-        File indexFile = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/homeLife/homeLifemini/index.html");
-        File zipFile = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/homeLife/homeLifemini.zip");
+        OkDownload.getInstance().setFolder(Environment.getExternalStorageDirectory().getAbsolutePath() + "/fshome/");
+        File indexFile = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/fshome/friday/fsmobile/index.html");
+        File zipFile = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/fshome/friday.zip");
         if (!indexFile.exists() || updataType == 1) {
             if (zipFile.exists()) {
                 zipFile.delete();
@@ -136,11 +137,11 @@ public class MainActivity extends AppCompatActivity {
 
                         @Override
                         public void onFinish(File file, Progress progress) {
-                            CompressUtil.unzip(file, Environment.getExternalStorageDirectory().getAbsolutePath() + "/homeLife/");
+                            CompressUtil.unzip(file, Environment.getExternalStorageDirectory().getAbsolutePath() + "/fshome/");
                             ToastUtil.showToast("下载完成");
                             mServerManager.startServer();
                             Intent intent = new Intent(MainActivity.this, WebViewActivity.class);
-                            intent.putExtra("url", "http://127.0.0.1:8080");
+                            intent.putExtra("url", "http://127.0.0.1:8080/friday/fsmobile");
                             startActivity(intent);
                             WaitDialog.dismiss();
                         }
@@ -154,7 +155,7 @@ public class MainActivity extends AppCompatActivity {
     }
 
     private void getVM() {
-        File versionFile = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/homeLife/homeLifemini/version");
+        File versionFile = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/fshome/fsmobile/version");
         FetchUpBean fetchUpBean = new FetchUpBean();
         ArrayList<FetchUpBean.QuerysBean> querysBeans = new ArrayList<>();
         FetchUpBean.QuerysBean querysBean = new FetchUpBean.QuerysBean();

+ 4 - 3
app/src/main/java/com/qingdaofushan/home/component/ApiInterceptor.java

@@ -1,6 +1,8 @@
 package com.qingdaofushan.home.component;
 
 
+import android.util.Log;
+
 import androidx.annotation.NonNull;
 
 import com.yanzhenjie.andserver.AndServer;
@@ -66,9 +68,8 @@ public class ApiInterceptor implements HandlerInterceptor {
 
     static {
         PROXY_PREFIXS = new HashMap<>();
-        PROXY_PREFIXS.put("/api", HttpHost.create("http://homelife.pwxmax.cn"));
-        PROXY_PREFIXS.put("/api/v1", HttpHost.create("https://funingyuan.dev.qingdaofushan.com"));
-        PROXY_PREFIXS.put("/api/store", HttpHost.create("https://funingyuan.dev.qingdaofushan.com"));
+        PROXY_PREFIXS.put("/api", HttpHost.create("https://debug.qingdaofushan.com"));
+        PROXY_PREFIXS.put("/ossmini", HttpHost.create("https://debug.qingdaofushan.com"));
     }
 
     private final static Set<String> HOP_BY_HOP = Collections.unmodifiableSet(new HashSet<>(Arrays.asList(

+ 1 - 1
app/src/main/java/com/qingdaofushan/home/component/AppConfig.java

@@ -19,7 +19,7 @@ public class AppConfig implements WebConfig {
 
     @Override
     public void onConfig(Context context, Delegate delegate) {
-        delegate.addWebsite(new StorageWebsite(Environment.getExternalStorageDirectory().getAbsolutePath() + "/BedsideCare/BedsideCare/"));
+        delegate.addWebsite(new StorageWebsite(Environment.getExternalStorageDirectory().getAbsolutePath() + "/fshome/"));
 
         delegate.setMultipart(Multipart.newBuilder()
             .allFileMaxSize(1024 * 1024 * 20) // 20M

+ 121 - 18
app/src/main/java/com/qingdaofushan/home/weiview/WebViewActivity.java

@@ -1,6 +1,9 @@
 package com.qingdaofushan.home.weiview;
 
 import android.Manifest;
+import android.annotation.TargetApi;
+import android.app.Activity;
+import android.content.ClipData;
 import android.content.ContentValues;
 import android.content.Intent;
 import android.content.pm.PackageManager;
@@ -15,6 +18,7 @@ import android.provider.MediaStore;
 import android.util.Base64;
 import android.util.Log;
 import android.view.KeyEvent;
+import android.webkit.ValueCallback;
 import android.webkit.WebSettings;
 import android.webkit.WebView;
 import android.widget.LinearLayout;
@@ -84,6 +88,10 @@ public class WebViewActivity extends AppCompatActivity {
      */
     private boolean isAndroidQ = Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q;
 
+    private ValueCallback<Uri> uploadMessage;
+    private ValueCallback<Uri[]> uploadMessageAboveL;
+    private final static int FILE_CHOOSER_RESULT_CODE = 10000;
+
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -100,8 +108,8 @@ public class WebViewActivity extends AppCompatActivity {
         mAgentWeb = AgentWeb.with(this)
                 .setAgentWebParent(linearLayout, new LinearLayout.LayoutParams(-1, -1))
                 .closeIndicator()
-//                .setWebChromeClient(mWebChromeClient)
-//                .setWebViewClient(mWebViewClient)
+                .setWebChromeClient(mWebChromeClient)
+                .setWebViewClient(mWebViewClient)
 //                .setPermissionInterceptor(mPermissionInterceptor)
                 .createAgentWeb()
                 .go(url);
@@ -152,8 +160,51 @@ public class WebViewActivity extends AppCompatActivity {
         public void onProgressChanged(WebView view, int newProgress) {
             //do you work
         }
+        // For Android < 3.0
+        public void openFileChooser(ValueCallback<Uri> valueCallback) {
+            uploadMessage = valueCallback;
+            openImageChooserActivity();
+        }
+
+        // For Android  >= 3.0
+        public void openFileChooser(ValueCallback valueCallback, String acceptType) {
+            uploadMessage = valueCallback;
+            openImageChooserActivity();
+        }
+
+        //For Android  >= 4.1
+        public void openFileChooser(ValueCallback<Uri> valueCallback, String acceptType, String capture) {
+            uploadMessage = valueCallback;
+            openImageChooserActivity();
+        }
+
+        // For Android >= 5.0
+        @Override
+        public boolean onShowFileChooser(WebView webView, ValueCallback<Uri[]> filePathCallback, WebChromeClient.FileChooserParams fileChooserParams) {
+            uploadMessageAboveL = filePathCallback;
+            openImageChooserActivity();
+            return true;
+        }
     };
 
+    // 2.回调方法触发本地选择文件
+    private void openImageChooserActivity() {
+        //调用系统相机
+        Intent intentCamera = new Intent();
+        if (Build.VERSION.SDK_INT >= 24) {
+            intentCamera.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); //添加这一句表示对目标应用临时授权该Uri所代表的文件
+        }
+        intentCamera.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
+            startActivityForResult(intentCamera, FILE_CHOOSER_RESULT_CODE);
+
+//        Intent i = new Intent(Intent.ACTION_GET_CONTENT);
+//        i.addCategory(Intent.CATEGORY_OPENABLE);
+//        i.setType("image/*");//图片上传
+////        i.setType("file/*");//文件上传
+////        i.setType("*/*");//文件上传
+//        startActivityForResult(Intent.createChooser(i, "File Chooser"), FILE_CHOOSER_RESULT_CODE);
+    }
+
     @Override
     public boolean onKeyDown(int keyCode, KeyEvent event) {
         if (mAgentWeb.handleKeyEvent(keyCode, event)) {
@@ -172,26 +223,78 @@ public class WebViewActivity extends AppCompatActivity {
 
     }
 
+//    @Override
+//    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
+//        super.onActivityResult(requestCode, resultCode, data);
+//        /**
+//         * 处理二维码扫描结果
+//         */
+//        if (resultCode == RESULT_OK) {
+//            switch (requestCode) {
+//                case 200:
+//                    Bundle bundle = data.getExtras();
+//                    String scanResult = bundle.getString(Constant.INTENT_EXTRA_KEY_QR_SCAN);
+////                    String result = CameraScan.parseScanResult(data);
+//                    mAgentWeb.getJsAccessEntrace().quickCallJs("QRCode", scanResult);
+//                    break;
+//                case CAMERA_REQUEST_CODE:
+//                    String uploadpath = Uri2PathUtil.getRealPathFromUri(this, mCameraUri);
+//                    mAgentWeb.getJsAccessEntrace().quickCallJs("Camera", uploadpath);
+//                    break;
+//            }
+//        }
+//    }
+    // 3.选择图片后处理
     @Override
-    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
         super.onActivityResult(requestCode, resultCode, data);
-        /**
-         * 处理二维码扫描结果
-         */
-        if (resultCode == RESULT_OK) {
-            switch (requestCode) {
-                case 200:
-                    Bundle bundle = data.getExtras();
-                    String scanResult = bundle.getString(Constant.INTENT_EXTRA_KEY_QR_SCAN);
-//                    String result = CameraScan.parseScanResult(data);
-                    mAgentWeb.getJsAccessEntrace().quickCallJs("QRCode", scanResult);
-                    break;
-                case CAMERA_REQUEST_CODE:
-                    String uploadpath = Uri2PathUtil.getRealPathFromUri(this, mCameraUri);
-                    mAgentWeb.getJsAccessEntrace().quickCallJs("Camera", fileToBase64(new File(uploadpath)));
-                    break;
+        if (requestCode == FILE_CHOOSER_RESULT_CODE) {
+            if (null == uploadMessage && null == uploadMessageAboveL) return;
+            Uri result = data == null || resultCode != RESULT_OK ? null : data.getData();
+            // Uri result = (((data == null) || (resultCode != RESULT_OK)) ? null : data.getData());
+            if (uploadMessageAboveL != null) {
+                onActivityResultAboveL(requestCode, resultCode, data);
+            } else if (uploadMessage != null) {
+                uploadMessage.onReceiveValue(result);
+                uploadMessage = null;
+            }
+        } else {
+            //这里uploadMessage跟uploadMessageAboveL在不同系统版本下分别持有了
+            //WebView对象,在用户取消文件选择器的情况下,需给onReceiveValue传null返回值
+            //否则WebView在未收到返回值的情况下,无法进行任何操作,文件选择器会失效
+            if (uploadMessage != null) {
+                uploadMessage.onReceiveValue(null);
+                uploadMessage = null;
+            } else if (uploadMessageAboveL != null) {
+                uploadMessageAboveL.onReceiveValue(null);
+                uploadMessageAboveL = null;
+            }
+        }
+    }
+
+    // 4. 选择内容回调到Html页面
+    @TargetApi(Build.VERSION_CODES.LOLLIPOP)
+    private void onActivityResultAboveL(int requestCode, int resultCode, Intent intent) {
+        if (requestCode != FILE_CHOOSER_RESULT_CODE || uploadMessageAboveL == null)
+            return;
+        Uri[] results = null;
+        if (resultCode == Activity.RESULT_OK) {
+            if (intent != null) {
+                String dataString = intent.getDataString();
+                ClipData clipData = intent.getClipData();
+                if (clipData != null) {
+                    results = new Uri[clipData.getItemCount()];
+                    for (int i = 0; i < clipData.getItemCount(); i++) {
+                        ClipData.Item item = clipData.getItemAt(i);
+                        results[i] = item.getUri();
+                    }
+                }
+                if (dataString != null)
+                    results = new Uri[]{Uri.parse(dataString)};
             }
         }
+        uploadMessageAboveL.onReceiveValue(results);
+        uploadMessageAboveL = null;
     }
 
     @Subscribe(threadMode = ThreadMode.MAIN)

+ 1 - 1
app/src/main/res/layout/activity_main.xml

@@ -11,7 +11,7 @@
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_centerInParent="true"
-        android:text="http://192.168.1.11:8080" />
+        android:text="http://192.168.31.46:8080/friday/fsmobile/" />
 
     <TextView
         android:id="@+id/start"