فهرست منبع

1完善法大大签约界面

zhangxinyu 6 سال پیش
والد
کامیت
0e667f927e

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

@@ -7,6 +7,8 @@
     <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
     <!--用于访问网络,网络定位需要上网-->
     <uses-permission android:name="android.permission.INTERNET" />
+    <!--用于访问网络,网络定位需要上网-->
+    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
     <!--写入扩展存储,向扩展卡写入数据-->
     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
     <!--用于读取手机当前的状态-->
@@ -37,13 +39,19 @@
             </intent-filter>
         </activity>
         <activity
+            android:name=".sdk.fdd.FDDWebViewActivity"
+            android:windowSoftInputMode="stateHidden|adjustPan"
+            android:screenOrientation="portrait" />
+        <activity
             android:name=".ui.activity.WebViewActivity"
             android:windowSoftInputMode="stateHidden|adjustPan"
             android:screenOrientation="portrait" />
         <activity
             android:name=".ui.activity.LoginActivity"
             android:windowSoftInputMode="stateHidden|adjustPan"
-            android:screenOrientation="portrait"></activity>
+            android:screenOrientation="portrait">
+
+        </activity>
         <activity
             android:name=".ui.activity.MineCenterActivity"
             android:screenOrientation="portrait" />

+ 56 - 0
app/src/main/java/com/webrain/happywork/sdk/fdd/FDDWebViewActivity.java

@@ -0,0 +1,56 @@
+package com.webrain.happywork.sdk.fdd;
+
+import android.content.Intent;
+import android.os.Bundle;
+import android.support.annotation.Nullable;
+import android.webkit.WebView;
+import android.webkit.WebViewClient;
+
+import com.webrain.baselibrary.IntentConstant;
+import com.webrain.happywork.R;
+import com.webrain.happywork.ui.base.BaseActivity;
+import com.webrain.happywork.ui.base.IPresenter;
+
+import butterknife.BindView;
+
+public class FDDWebViewActivity extends BaseActivity {
+    @BindView(R.id.main_webview)
+    WebView mWebView;
+
+    @Override
+    protected void onCreate(@Nullable Bundle savedInstanceState) {
+        super.onCreate(savedInstanceState);
+        initWebView();
+    }
+
+    @Override
+    public int getLayoutId() {
+        return R.layout.activity_fdd_webview;
+    }
+
+    @Override
+    public IPresenter bindPresenter() {
+        return null;
+    }
+
+    private void initWebView() {
+        String mUri = getIntent().getStringExtra(IntentConstant.URL);
+        mWebView.setWebViewClient(new WebViewClient());
+        mWebView.setWebChromeClient(new H5FaceWebChromeClient(FDDWebViewActivity.this));
+        WBH5FaceVerifySDK.getInstance().setWebViewSettings(mWebView, getApplicationContext());
+        mWebView.loadUrl(mUri);
+    }
+
+    @Override
+    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+        super.onActivityResult(requestCode, resultCode, data);
+        if (WBH5FaceVerifySDK.getInstance().receiveH5FaceVerifyResult(requestCode, resultCode, data, this))
+            return;
+    }
+
+    public void setTitle(String title){
+        setTitle(title);
+    }
+
+}
+

+ 68 - 0
app/src/main/java/com/webrain/happywork/sdk/fdd/H5FaceWebChromeClient.java

@@ -0,0 +1,68 @@
+package com.webrain.happywork.sdk.fdd;
+
+import android.annotation.TargetApi;
+import android.app.Activity;
+import android.net.Uri;
+import android.text.TextUtils;
+import android.webkit.ConsoleMessage;
+import android.webkit.JsPromptResult;
+import android.webkit.JsResult;
+import android.webkit.ValueCallback;
+import android.webkit.WebChromeClient;
+import android.webkit.WebView;
+
+
+public class H5FaceWebChromeClient extends WebChromeClient {
+    private FDDWebViewActivity activity;
+
+    public H5FaceWebChromeClient(FDDWebViewActivity mActivity) {
+        this.activity = mActivity;
+    }
+
+    @Override
+    public void onReceivedTitle(WebView view, String title) {
+        super.onReceivedTitle(view, title);
+        activity.setTitle(title);
+    }
+
+    @Override
+    public boolean onJsPrompt(WebView view, String url, String message, String defaultValue, JsPromptResult result) {
+        return super.onJsPrompt(view, url, message, defaultValue, result);
+    }
+
+    @Override
+    public boolean onJsConfirm(WebView view, String url, String message, JsResult result) {
+        return super.onJsConfirm(view, url, message, result);
+    }
+
+    @TargetApi(8)
+    @Override
+    public boolean onConsoleMessage(ConsoleMessage consoleMessage) {
+        return super.onConsoleMessage(consoleMessage);
+    }
+
+    // For Android >= 3.0
+    public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType) {
+        if (WBH5FaceVerifySDK.getInstance().recordVideoForApiBelow21(uploadMsg, acceptType, activity))
+            return;
+
+    }
+
+    // For Android >= 4.1
+    public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture) {
+        if (WBH5FaceVerifySDK.getInstance().recordVideoForApiBelow21(uploadMsg, acceptType, activity))
+            return;
+    }
+
+    // For Lollipop 5.0+ Devices
+    @TargetApi(21)
+    @Override
+    public boolean onShowFileChooser(WebView webView, ValueCallback<Uri[]> filePathCallback, FileChooserParams fileChooserParams) {
+        if (WBH5FaceVerifySDK.getInstance().recordVideoForApi21(webView, filePathCallback, activity, fileChooserParams)) {
+            return true;
+        }
+        return true;
+    }
+
+
+}

+ 342 - 0
app/src/main/java/com/webrain/happywork/sdk/fdd/WBH5FaceVerifySDK.java

@@ -0,0 +1,342 @@
+package com.webrain.happywork.sdk.fdd;
+
+import android.Manifest;
+import android.annotation.TargetApi;
+import android.app.Activity;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.net.ConnectivityManager;
+import android.net.NetworkInfo;
+import android.net.Uri;
+import android.os.Build;
+import android.provider.MediaStore;
+import android.telephony.TelephonyManager;
+import android.util.Log;
+import android.webkit.ValueCallback;
+import android.webkit.WebChromeClient;
+import android.webkit.WebSettings;
+import android.webkit.WebView;
+
+import com.webrain.baselibrary.utils.PermissionsUtils;
+import com.webrain.baselibrary.utils.SharedPreferencesUtils;
+import com.webrain.baselibrary.utils.ToastUtils;
+import com.webrain.happywork.ui.base.BaseActivity;
+import com.webrain.happywork.utils.FileUtils;
+import com.webrain.happywork.utils.PhotoUtils;
+
+import java.io.File;
+
+import io.reactivex.functions.Consumer;
+
+import static android.app.Activity.RESULT_OK;
+
+public class WBH5FaceVerifySDK {
+    //没有网络连接
+    private static final String NETWORK_NONE = "NETWORK_NONE";
+    //wifi连接
+    private static final String NETWORK_WIFI = "NETWORK_WIFI";
+    //手机网络数据连接类型
+    private static final String NETWORK_2G = "NETWORK_2G";
+    private static final String NETWORK_3G = "NETWORK_3G";
+    private static final String NETWORK_4G = "NETWORK_4G";
+    private static final String NETWORK_MOBILE = "NETWORK_MOBILE";
+    private static final int VIDEO_REQUEST = 0x11;
+    private static final int IMAGE_REQUEST = 0x12;
+    private ValueCallback<Uri> mUploadMessage;
+    private ValueCallback<Uri[]> mUploadCallbackAboveL;
+    private static WBH5FaceVerifySDK instance;
+
+    /**
+     * 获取当前网络连接类型
+     *
+     * @param context
+     */
+    private static String getNetWorkState(Context context) {
+        //获取系统的网络服务
+        ConnectivityManager connManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
+        //如果当前没有网络
+        if (null == connManager)
+            return NETWORK_NONE;
+
+        //获取当前网络类型,如果为空,返回无网络
+        NetworkInfo activeNetInfo = connManager.getActiveNetworkInfo();
+        if (activeNetInfo == null || !activeNetInfo.isAvailable()) {
+            return NETWORK_NONE;
+        }
+
+        // 判断是不是连接的是不是wifi
+        NetworkInfo wifiInfo = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
+        if (null != wifiInfo) {
+            NetworkInfo.State state = wifiInfo.getState();
+            if (null != state)
+                if (state == NetworkInfo.State.CONNECTED || state == NetworkInfo.State.CONNECTING) {
+                    return NETWORK_WIFI;
+                }
+        }
+
+        // 如果不是wifi,则判断当前连接的是运营商的哪种网络2g、3g、4g等
+        NetworkInfo networkInfo = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
+
+        if (null != networkInfo) {
+            NetworkInfo.State state = networkInfo.getState();
+            String strSubTypeName = networkInfo.getSubtypeName();
+            if (null != state)
+                if (state == NetworkInfo.State.CONNECTED || state == NetworkInfo.State.CONNECTING) {
+                    switch (activeNetInfo.getSubtype()) {
+                        //如果是2g类型
+                        case TelephonyManager.NETWORK_TYPE_GPRS: // 联通2g
+                        case TelephonyManager.NETWORK_TYPE_CDMA: // 电信2g
+                        case TelephonyManager.NETWORK_TYPE_EDGE: // 移动2g
+                        case TelephonyManager.NETWORK_TYPE_1xRTT:
+                        case TelephonyManager.NETWORK_TYPE_IDEN:
+                            return NETWORK_2G;
+                        //如果是3g类型
+                        case TelephonyManager.NETWORK_TYPE_EVDO_A: // 电信3g
+                        case TelephonyManager.NETWORK_TYPE_UMTS:
+                        case TelephonyManager.NETWORK_TYPE_EVDO_0:
+                        case TelephonyManager.NETWORK_TYPE_HSDPA:
+                        case TelephonyManager.NETWORK_TYPE_HSUPA:
+                        case TelephonyManager.NETWORK_TYPE_HSPA:
+                        case TelephonyManager.NETWORK_TYPE_EVDO_B:
+                        case TelephonyManager.NETWORK_TYPE_EHRPD:
+                        case TelephonyManager.NETWORK_TYPE_HSPAP:
+                            return NETWORK_3G;
+                        //如果是4g类型
+                        case TelephonyManager.NETWORK_TYPE_LTE:
+                            return NETWORK_4G;
+                        default:
+                            //中国移动 联通 电信 三种3G制式
+                            if (strSubTypeName.equalsIgnoreCase("TD-SCDMA") || strSubTypeName.equalsIgnoreCase("WCDMA") || strSubTypeName.equalsIgnoreCase("CDMA2000")) {
+                                return NETWORK_3G;
+                            } else {
+                                return NETWORK_MOBILE;
+                            }
+                    }
+                }
+        }
+        return NETWORK_NONE;
+    }
+
+    public static synchronized WBH5FaceVerifySDK getInstance() {
+        if (null == instance) {
+            instance = new WBH5FaceVerifySDK();
+        }
+        return instance;
+    }
+
+    private WBH5FaceVerifySDK() {
+    }
+
+    public void setWebViewSettings(WebView mWebView, Context context) {
+        if (null == mWebView)
+            return;
+        WebSettings webSetting = mWebView.getSettings();
+        webSetting.setJavaScriptEnabled(true);
+        webSetting.setJavaScriptCanOpenWindowsAutomatically(true);
+        webSetting.setTextZoom(100);
+        webSetting.setAllowFileAccess(true);
+        webSetting.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);
+        webSetting.setSupportZoom(true);
+        webSetting.setBuiltInZoomControls(true);
+        webSetting.setDisplayZoomControls(false);
+        webSetting.setUseWideViewPort(true);
+        webSetting.setSupportMultipleWindows(false);
+        webSetting.setLoadWithOverviewMode(true);
+        webSetting.setAppCacheEnabled(true);
+        webSetting.setDatabaseEnabled(true);
+        webSetting.setDomStorageEnabled(true);
+        webSetting.setGeolocationEnabled(true);
+        webSetting.setBlockNetworkImage(false);
+        webSetting.setAppCacheMaxSize(Long.MAX_VALUE);
+        webSetting.setAppCachePath(context.getDir("appcache", 0).getPath());
+        webSetting.setDatabasePath(context.getDir("databases", 0).getPath());
+        webSetting.setGeolocationDatabasePath(context.getDir("geolocation", 0).getPath());
+        webSetting.setPluginState(WebSettings.PluginState.ON_DEMAND);
+        webSetting.setRenderPriority(WebSettings.RenderPriority.HIGH);
+
+        if (Build.VERSION.SDK_INT >= 21) {
+            webSetting.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
+        }
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
+            webSetting.setAllowUniversalAccessFromFileURLs(true);
+        }
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
+            mWebView.removeJavascriptInterface("searchBoxJavaBridge_");
+        }
+        String ua = webSetting.getUserAgentString();
+        try {
+            webSetting.setUserAgentString(ua + ";webank/h5face;webank/1.0" + ";netType:" +
+                    getNetWorkState(context) + ";appVersion:" +
+                    context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionCode +
+                    ";packageName:" + context.getPackageName());
+        } catch (PackageManager.NameNotFoundException e) {
+            webSetting.setUserAgentString(ua + ";webank/h5face;webank/1.0");
+            e.printStackTrace();
+        }
+    }
+
+    public boolean receiveH5FaceVerifyResult(int requestCode, int resultCode, Intent data, Activity activity) {
+        if (requestCode == VIDEO_REQUEST) { //根据请求码判断返回的是否是h5刷脸结果
+            if (null == mUploadMessage && null == mUploadCallbackAboveL)
+                return true;
+            Uri result = data == null || resultCode != RESULT_OK ? null : data.getData();
+            Uri[] uris = result == null ? null : new Uri[]{result};
+            if (mUploadCallbackAboveL != null) {
+                mUploadCallbackAboveL.onReceiveValue(uris);
+                setmUploadCallbackAboveL(null);
+            } else {
+                mUploadMessage.onReceiveValue(result);
+                setmUploadMessage(null);
+            }
+            return true;
+        } else if (requestCode == IMAGE_REQUEST) {
+            if (null == mUploadMessage && null == mUploadCallbackAboveL) {
+                return true;
+            }
+            Uri result;
+            Uri[] uris;
+            if (resultCode != RESULT_OK) {
+                result = null;
+                uris = null;
+            } else if (data == null) {//拍照
+                String imgPath = SharedPreferencesUtils.getCameraImageFile(activity);
+                File file = FileUtils.getFileFromPath(imgPath.replace("file://", ""));
+                result = Uri.fromFile(file);
+                uris = new Uri[]{result};
+            } else {//选照片
+                result = data == null ? null : data.getData();
+                uris = result == null ? null : new Uri[]{result};
+            }
+            if (mUploadCallbackAboveL != null) {
+                mUploadCallbackAboveL.onReceiveValue(uris);
+                setmUploadCallbackAboveL(null);
+            } else {
+                mUploadMessage.onReceiveValue(result);
+                setmUploadMessage(null);
+            }
+        }
+        return false;
+    }
+
+    public boolean recordVideoForApiBelow21(final ValueCallback<Uri> uploadMsg, String acceptType, final BaseActivity activity) {
+        if (acceptType.equals("video/webank")) {
+            PermissionsUtils.requestPermissions(activity, new Consumer<Boolean>() {
+                @Override
+                public void accept(Boolean aBoolean) {
+                    if (aBoolean) {
+                        setmUploadMessage(uploadMsg);
+                        recordVideo(activity);
+                    } else {
+                        uploadMsg.onReceiveValue(null);
+                        setmUploadMessage(null);
+                        ToastUtils.show(activity, "请打开相关权限");
+                    }
+                }
+            }, Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.READ_PHONE_STATE);
+            return true;
+        } else if (acceptType.equals("image/*")) {
+            PermissionsUtils.requestPermissions(activity, new Consumer<Boolean>() {
+                @Override
+                public void accept(Boolean aBoolean) {
+                    if (aBoolean) {
+                        setmUploadMessage(uploadMsg);
+                        recordImage(activity);
+                    } else {
+                        uploadMsg.onReceiveValue(null);
+                        setmUploadMessage(null);
+                        ToastUtils.show(activity, "请打开相关权限");
+                    }
+                }
+            }, Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE);
+            return true;
+        }
+        return false;
+    }
+
+    @TargetApi(21)
+    public boolean recordVideoForApi21(WebView webView, final ValueCallback<Uri[]> filePathCallback, final BaseActivity activity, final WebChromeClient.FileChooserParams fileChooserParams) {
+        Log.d("faceVerify", "accept is " + fileChooserParams.getAcceptTypes()[0] + "---url---" + webView.getUrl());
+        if ("video/webank".equals(fileChooserParams.getAcceptTypes()[0]) || webView.getUrl().startsWith("https://ida.webank.com/")) { //是h5刷脸
+            PermissionsUtils.requestPermissions(activity, new Consumer<Boolean>() {
+                @Override
+                public void accept(Boolean aBoolean) {
+                    if (aBoolean) {
+                        setmUploadCallbackAboveL(filePathCallback);
+                        recordVideo(activity);
+                    } else {
+                        filePathCallback.onReceiveValue(null);
+                        setmUploadCallbackAboveL(null);
+                        ToastUtils.show(activity, "请打开相关权限");
+                    }
+                }
+            }, Manifest.permission.CAMERA, Manifest.permission.RECORD_AUDIO, Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.READ_PHONE_STATE);
+
+            return true;
+        } else if (fileChooserParams.getAcceptTypes()[0].equals("image/*")) {//照片选择
+            PermissionsUtils.requestPermissions(activity, new Consumer<Boolean>() {
+                @Override
+                public void accept(Boolean aBoolean) {
+                    if (aBoolean) {
+                        setmUploadCallbackAboveL(filePathCallback);
+                        recordImage(activity);
+                    } else {
+                        filePathCallback.onReceiveValue(null);
+                        setmUploadCallbackAboveL(null);
+                        ToastUtils.show(activity, "请打开相关权限");
+                    }
+                }
+            }, Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE);
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * 调用系统前置摄像头进行视频录制
+     */
+    private void recordVideo(Activity activity) {
+        try {
+            Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
+            intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
+            intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
+            intent.putExtra("android.intent.extras.CAMERA_FACING", 1); // 调用前置摄像头
+            activity.startActivityForResult(intent, VIDEO_REQUEST);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * 调用系统相机或者选择图片
+     */
+    private void recordImage(Activity activity) {
+        try {
+            Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
+            takePictureIntent.putExtra("output", PhotoUtils
+                    .getCameraStrImgCachePathUri(activity));
+            takePictureIntent.putExtra(
+                    "android.intent.extra.videoQuality", IMAGE_REQUEST);
+
+            Intent contentSelectionIntent = new Intent(Intent.ACTION_GET_CONTENT);
+            contentSelectionIntent.setType("image/*");
+            Intent[] intentArray = new Intent[]{takePictureIntent};
+
+            Intent chooserIntent = new Intent(Intent.ACTION_CHOOSER);
+            chooserIntent.putExtra(Intent.EXTRA_INTENT, contentSelectionIntent);
+            chooserIntent.putExtra(Intent.EXTRA_TITLE, "选择打开");
+            chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, intentArray);
+            activity.startActivityForResult(chooserIntent, IMAGE_REQUEST);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    private void setmUploadMessage(ValueCallback<Uri> uploadMessage) {
+        mUploadMessage = uploadMessage;
+    }
+
+    private void setmUploadCallbackAboveL(ValueCallback<Uri[]> uploadCallbackAboveL) {
+        mUploadCallbackAboveL = uploadCallbackAboveL;
+    }
+}

+ 1 - 5
app/src/main/java/com/webrain/happywork/ui/activity/WebViewActivity.java

@@ -26,7 +26,6 @@ import com.webrain.happywork.ui.base.BaseActivity;
 import com.webrain.happywork.ui.mvp.contacts.WebViewContacts;
 import com.webrain.happywork.ui.mvp.presenter.WebViewPresenter;
 import com.webrain.happywork.utils.FileUtils;
-import com.webrain.happywork.utils.LogUtils;
 
 import java.io.File;
 
@@ -66,6 +65,7 @@ public class WebViewActivity extends BaseActivity<WebViewPresenter> implements W
 
 
         mUri = getIntent().getStringExtra(IntentConstant.URL);
+        mUri = "https://realnameverify-test.fadada.com/fddAuthenticationService/v1/api/synsAuthentication.action?transaction_no=0E18645E3279DFF8B18F3C46C5935340EBF172B2569DDD0F22920D976AD4B853415284DCBBE32BB3&sign=MjVBNzA1ODMwODYxNjQwMDcyRjEzRUJDRDMxRUU0MjcyNjdFREU4Qg==&app_id=600008&timestamp=1574669405527";
         mTitle = getIntent().getStringExtra(IntentConstant.CONTENT);
         mWebView.setWebViewClient(new MyWebViewClient());
         mWebView.setWebChromeClient(new MyWebChromeClient());
@@ -152,20 +152,16 @@ public class WebViewActivity extends BaseActivity<WebViewPresenter> implements W
         @Override
         public void onPageStarted(WebView view, String url, Bitmap favicon) {
             super.onPageStarted(view, url, favicon);
-
-            mWebView.getSettings().setBlockNetworkImage(true);
         }
 
         @Override
         public boolean shouldOverrideUrlLoading(WebView view, String url) {
-            LogUtils.d("load : " + url);
             return super.shouldOverrideUrlLoading(view, url);
         }
 
         @Override
         public void onPageFinished(WebView view, String url) {
             super.onPageFinished(view, url);
-            mWebView.getSettings().setBlockNetworkImage(false);
         }
 
         @Override

+ 6 - 2
app/src/main/java/com/webrain/happywork/ui/mvp/model/WebViewModel.java

@@ -54,8 +54,12 @@ public class WebViewModel extends BaseModel implements WebViewContacts.IWebViewM
     public void onActivityForResult(int requestCode, int resultCode, Intent data, MvpDataCallBack<MediaInfoBean> callBack) {
         if (((WebViewActivity) mContext).RESULT_OK == resultCode) {
             if (requestCode == 1) {//拍照
-                String imgPath = SharedPreferencesUtils.getCameraImageFile(mContext);
-                callBack.onData(new MediaInfoBean(imgPath, AppConstant.MEDIO_TYPE_IMAGE));
+                if(data==null){//拍照
+                    String imgPath = SharedPreferencesUtils.getCameraImageFile(mContext);
+                    callBack.onData(new MediaInfoBean(imgPath, AppConstant.MEDIO_TYPE_IMAGE));
+                }else{//选照片
+                    callBack.onData(new MediaInfoBean(data.getData().getPath(), AppConstant.MEDIO_TYPE_IMAGE));
+                }
             } else if (requestCode == 0) {//照片选取
                 String imgPath = data.getStringExtra(IntentConstant.IMAGE_PATH);
                 callBack.onData(new MediaInfoBean(imgPath, AppConstant.MEDIO_TYPE_IMAGE));

+ 2 - 1
app/src/main/java/com/webrain/happywork/ui/mvp/presenter/MineOrderListPresenter.java

@@ -14,6 +14,7 @@ import com.webrain.happywork.R;
 import com.webrain.happywork.bean.OrderBean;
 import com.webrain.happywork.callback.MvpDataCallBack;
 import com.webrain.happywork.http.exception.ApiException;
+import com.webrain.happywork.sdk.fdd.FDDWebViewActivity;
 import com.webrain.happywork.ui.activity.MineOrderListActivity;
 import com.webrain.happywork.ui.activity.WebViewActivity;
 import com.webrain.happywork.ui.base.BasePresenter;
@@ -109,7 +110,7 @@ public class MineOrderListPresenter extends BasePresenter<MineOrderListActivity>
 //                        Uri uri = Uri.parse(data);
 //                        Intent intent = new Intent(Intent.ACTION_VIEW, uri);
 //                        mvpReference.get().startActivity(intent);
-                        Intent intent = new Intent(mvpReference.get(), WebViewActivity.class);
+                        Intent intent = new Intent(mvpReference.get(), FDDWebViewActivity.class);
                         intent.putExtra(IntentConstant.URL, data);
                         mvpReference.get().startActivity(intent);
                     }

+ 22 - 5
app/src/main/java/com/webrain/happywork/ui/mvp/presenter/WebViewPresenter.java

@@ -3,7 +3,10 @@ package com.webrain.happywork.ui.mvp.presenter;
 
 import android.Manifest;
 import android.content.Intent;
+import android.net.Uri;
+import android.provider.MediaStore;
 import android.text.TextUtils;
+import android.util.Log;
 
 import com.webrain.baselibrary.AppConstant;
 import com.webrain.baselibrary.EventConstant;
@@ -23,6 +26,9 @@ import com.webrain.happywork.utils.PhotoUtils;
 
 import org.greenrobot.eventbus.EventBus;
 
+import java.io.File;
+import java.io.IOException;
+
 import io.reactivex.functions.Consumer;
 
 public class WebViewPresenter extends BasePresenter<WebViewActivity> implements WebViewContacts.IWebViewPresenter {
@@ -48,13 +54,24 @@ public class WebViewPresenter extends BasePresenter<WebViewActivity> implements
                                 @Override
                                 public void accept(Boolean aBoolean) {
                                     if (aBoolean) {
-                                        Intent cameraIntent = new Intent(
-                                                "android.media.action.IMAGE_CAPTURE");
-                                        cameraIntent.putExtra("output", PhotoUtils
+
+                                        Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
+                                        takePictureIntent.putExtra("output", PhotoUtils
                                                 .getCameraStrImgCachePathUri(mvpReference.get()));
-                                        cameraIntent.putExtra(
+                                        takePictureIntent.putExtra(
                                                 "android.intent.extra.videoQuality", 1);
-                                        mvpReference.get().startActivityForResult(cameraIntent, 1);
+
+                                        Intent contentSelectionIntent = new Intent(Intent.ACTION_GET_CONTENT);
+                                        contentSelectionIntent.setType("image/*");
+                                        Intent[] intentArray = new Intent[]{takePictureIntent};
+
+                                        Intent chooserIntent = new Intent(Intent.ACTION_CHOOSER);
+                                        chooserIntent.putExtra(Intent.EXTRA_INTENT, contentSelectionIntent);
+                                        chooserIntent.putExtra(Intent.EXTRA_TITLE, "选择打开");
+                                        chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, intentArray);
+                                        mvpReference.get().startActivityForResult(chooserIntent, 1);
+
+
                                     } else {
                                         mvpReference.get().onFileNoChoose();
                                     }

+ 12 - 0
app/src/main/res/layout/activity_fdd_webview.xml

@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:orientation="vertical">
+
+    <WebView
+        android:id="@+id/main_webview"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent" />
+
+</LinearLayout>