Commit ddb228a1 by han xu

web

parent 91bf5283
......@@ -33,5 +33,11 @@
<ImageView style="@style/card_line" />
<Button
android:id="@+id/test_btn"
android:layout_width="100dp"
android:layout_height="100dp"
android:text="button"/>
</LinearLayout>
</layout>
\ No newline at end of file
......@@ -90,6 +90,18 @@ public class Order implements Serializable{
this.finishedDays = finishedDays;
}
//订单详情url
private String extOrderDetailUrl;
public String getExtOrderDetailUrl() {
return extOrderDetailUrl;
}
public void setExtOrderDetailUrl(String extOrderDetailUrl) {
this.extOrderDetailUrl = extOrderDetailUrl;
}
public int getSource() {
return source;
}
......
......@@ -33,12 +33,14 @@ import com.dayu.order.ui.activity.MultiProcessOrderActivity;
import com.dayu.order.ui.activity.MultipleProcessActivity;
import com.dayu.order.ui.activity.OrderDetailsActivity;
import com.dayu.order.ui.activity.OrderDetailsClockActivity;
import com.dayu.order.ui.activity.RepairOrderWebViewActivity;
import com.dayu.order.ui.activity.SopWebViewActivity;
import com.dayu.order.ui.fragment.OrderDoneFragment;
import com.dayu.order.ui.fragment.OrderSecondTabFragment;
import com.dayu.order.ui.fragment.OrderThreeTabFragment;
import com.dayu.provider.event.RefreshServe;
import com.dayu.provider.event.RefreshTab;
import com.dayu.usercenter.ui.activity.CommeWebViewActivity;
import com.dayu.utils.AppManager;
import com.dayu.utils.ToastUtils;
import com.dayu.utils.UIUtils;
......@@ -286,6 +288,16 @@ public class OrderDoingPresenter extends orderDoingContract.Presenter {
}
public void dumpDetailRepair(String extOrderDetailUrl) {
Intent intent = new Intent(mActivity, RepairOrderWebViewActivity.class);
Bundle bundle = new Bundle();
bundle.putString(Constants.URL, extOrderDetailUrl);
bundle.putString(Constants.TITLE, "处理工单");
intent.putExtra(Constants.BUNDLE, bundle);
mView.startActivity(RepairOrderWebViewActivity.class, bundle);
}
private void checkCachedLicense(Order order) {
}
......
package com.dayu.order.ui.activity;
import android.Manifest;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.location.Address;
import android.net.Uri;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.webkit.JavascriptInterface;
import android.webkit.WebSettings;
import android.widget.Button;
import com.dayu.common.Constants;
import com.dayu.event.UserInfo;
import com.dayu.location.base.LocationUtils1;
import com.dayu.order.api.protocol.bean.SopAddress;
import com.dayu.usercenter.ui.activity.CommeWebViewActivity;
import com.dayu.utils.GlideEngine;
import com.dayu.utils.ImageFileCropEngine;
import com.dayu.utils.MPermissionUtils;
import com.dayu.utils.ToastUtils;
import com.dayu.utils.UserManager;
import com.github.lzyzsd.jsbridge.BridgeWebView;
import com.google.gson.Gson;
import com.google.gson.internal.LinkedTreeMap;
import com.google.zxing.integration.android.IntentIntegrator;
import com.journeyapps.barcodescanner.CaptureActivity;
import com.luck.picture.lib.basic.PictureSelectionCameraModel;
import com.luck.picture.lib.basic.PictureSelectionModel;
import com.luck.picture.lib.basic.PictureSelector;
import com.luck.picture.lib.config.PictureConfig;
import com.luck.picture.lib.config.SelectMimeType;
import com.luck.picture.lib.config.SelectModeConfig;
import com.luck.picture.lib.entity.LocalMedia;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Objects;
public class RepairOrderWebViewActivity extends CommeWebViewActivity {
@Override
public void initView() {
super.initView();
WebSettings settings = mWebView.getSettings();
String userAgent = "dayuapp/" + settings.getUserAgentString();
settings.setUserAgentString(userAgent);
WebAppInterface webAppInterface = new WebAppInterface(this);
mWebView.addJavascriptInterface(new WebAppInterface(this), "synopsis");
mBind.testBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// webAppInterface.scriptMessage("{\"selName\":\"selectPhoto\",\"paramsDic\": {\"mode\":1, \"maxNum\":1}}");
webAppInterface.scriptMessage("{\"selName\":\"openScaner\",\"paramsDic\": {\"mode\":1, \"maxNum\":1}}");
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
switch (requestCode) {
case PictureConfig.CHOOSE_REQUEST://选择图片回调
List<LocalMedia> mSelectList = PictureSelector.obtainSelectorList(data);
break;
case 1002://打开相机回调
List<LocalMedia> mSelectList1 = PictureSelector.obtainSelectorList(data);
break;
case 1003://二维码扫描
String result = data.getExtras().getString("result");
break;
}
}
}
public class WebAppInterface {
// Context mContext;
Activity mActivity;
WebAppInterface(Activity a) {
mActivity = a;
}
@JavascriptInterface
public void scriptMessage(String message) {
// 处理接收到的消息
Log.d("scriptMessage", "scriptMessage: " + message);
Gson gson = new Gson();
HashMap<String, Object> map = gson.fromJson(message, HashMap.class);
// JSON.stringify({
// selName: 'openScaner',
// paramsDic: {},
// })
String selName = (String) map.get("selName");
switch (Objects.requireNonNull(selName)){
case "selectPhoto":
selectPhoto(selName, (Object)map.get("paramsDic"));
break;
case "openScaner":
openScaner();
break;
case "openCamera":
openCamera();
break;
case "getLocation":
break;
case "ajaxRequest":
break;
default:
break;
}
}
//选择图片
private void selectPhoto(String selName, Object data){
String[] mPerArr = new String[]{Manifest.permission.READ_EXTERNAL_STORAGE,Manifest.permission.WRITE_EXTERNAL_STORAGE};
MPermissionUtils.requestPermissionsResult(mActivity, 1, mPerArr, new MPermissionUtils.OnPermissionListener() {
@SuppressLint("CheckResult")
@Override
public void onPermissionGranted() {
LinkedTreeMap<String, Integer> param = (LinkedTreeMap<String, Integer>)data;
// Integer mode = param.get("mode");
// Integer maxNum = param.get("maxNum");
showPicDialog(1, 1);
}
@Override
public void onPermissionDenied() {
}
});
}
private void showPicDialog(Integer mode, Integer maxNum){
PictureSelectionModel selector = PictureSelector.create(mActivity)
.openGallery(SelectMimeType.ofImage())//全部.PictureMimeType.ofAll()、图片.ofImage()、视频.ofVideo()
.setImageEngine(GlideEngine.createGlideEngine())
.setImageSpanCount(4)
.setSelectionMode(mode == 1? SelectModeConfig.SINGLE : SelectModeConfig.MULTIPLE)
.setMaxSelectNum(mode == 1? 1 : maxNum);
selector.forResult(PictureConfig.CHOOSE_REQUEST);
}
//拍照
private void openCamera (){
String[] mPerArr = new String[]{Manifest.permission.CAMERA};
MPermissionUtils.requestPermissionsResult(mActivity, 1, mPerArr, new MPermissionUtils.OnPermissionListener() {
@SuppressLint("CheckResult")
@Override
public void onPermissionGranted() {
// Observable.timer(1000, TimeUnit.MILLISECONDS)
// .observeOn(AndroidSchedulers.mainThread())
// .subscribe(aLong -> {
// Intent intent = new Intent(PubCourseActivity.this, CameraActivity.class);
// intent.putExtra(Constants.ONLY_VIDEO, true);
// startActivityForResult(intent, Constants.CAMERA_CODE);
// });
PictureSelectionCameraModel pictureSelectionCameraModel = PictureSelector.create(mActivity)
.openCamera(SelectMimeType.ofImage());
pictureSelectionCameraModel.forResultActivity(1002);
}
@Override
public void onPermissionDenied() {
}
});
}
//图片上传
//二维码扫描
private void openScaner(){
String[] mPerArr = new String[]{Manifest.permission.CAMERA};
MPermissionUtils.requestPermissionsResult(mActivity, 1, mPerArr, new MPermissionUtils.OnPermissionListener() {
@SuppressLint("CheckResult")
@Override
public void onPermissionGranted() {
new IntentIntegrator(mActivity).setOrientationLocked(false).setCaptureActivity(CustomScannerActivity.class).initiateScan();
// Intent startScan = new Intent(mActivity, CaptureActivity.class);
// startActivityForResult(startScan, 1003);
}
@Override
public void onPermissionDenied() {
}
});
}
private void getLocation() {
MPermissionUtils.getPermissionDialog(mActivity, Manifest.permission.ACCESS_COARSE_LOCATION, "大鱼需要你的定位权限,用于记录处理sop的当前位置", new MPermissionUtils.OnPermissionListener() {
@Override
public void onPermissionGranted() {
LocationUtils1.getInstance(mActivity).setAddressCallback(new LocationUtils1.AddressCallback() {
@Override
public void onGetAddress(Address address) {
if (address == null) return;
// bean.setLatitude(address.getLatitude());
// bean.setLongitude(address.getLongitude());
}
@Override
public void onGetLocation(double lat, double lng) {
}
});
}
@Override
public void onPermissionDenied() {
}
});
}
private void callPhone(String phoneNum){
if (TextUtils.isEmpty(phoneNum))
return;
Intent intent = new Intent(Intent.ACTION_DIAL);
Uri data = Uri.parse("tel:" + phoneNum);
intent.setData(data);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
}
}
......@@ -61,11 +61,17 @@ public class OrderSecondTabFragment extends BaseFragment<OrderDoingPresenter, Fr
mBind.recyclerView.setOnItemClickListener(new OnItemClickListener<Order, FragmentOrderdoingItemBinding>() {
@Override
public void OnItemClick(Order item, FragmentOrderdoingItemBinding bind) {
if (7 == item.getSource() || 8 == item.getSource()){
mPresenter.dumpDetailClockSecond(item.getId());
}else{
mPresenter.dumpDetail(item.getId());
}
mPresenter.dumpDetailRepair("http://dev.kf.ai/test_edianyun.html");
// if (item.getExtOrderDetailUrl() != null && !item.getExtOrderDetailUrl().isEmpty())
// {
// mPresenter.dumpDetailRepair(item.getExtOrderDetailUrl());
// } else if (7 == item.getSource() || 8 == item.getSource()){
// mPresenter.dumpDetailClockSecond(item.getId());
// }else{
// mPresenter.dumpDetail(item.getId());
// }
}
});
......
......@@ -7,6 +7,9 @@
android:label="@string/app_name"
android:supportsRtl="true">
<activity
android:name=".ui.activity.RepairOrderWebViewActivity"
android:screenOrientation="portrait" />
<activity
android:name=".ui.activity.TestActivity"
android:screenOrientation="portrait" />
<activity
......
......@@ -94,4 +94,5 @@
libero vel nunc consequat, quis tincidunt nisl eleifend. Cras bibendum enim a justo luctus
vestibulum. Fusce dictum libero quis erat maximus, vitae volutpat diam dignissim.
</string>
<string name="title_activity_repair_order_web_view">RepairOrderWebViewActivity</string>
</resources>
package com.dayu.usercenter.ui.activity;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.webkit.JavascriptInterface;
import android.webkit.ValueCallback;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
......@@ -48,7 +51,7 @@ public class CommeWebViewActivity extends DataBindingActivity<ActivityWebviewBin
ValueCallback<Uri[]> uploadMessageAboveL;
int RESULT_CODE = 0;
int RESULT_CODE_FOR_Lollipop = 1;
private BridgeWebView mWebView;
public BridgeWebView mWebView;
private String mUrl;
//定义支付域名(替换成公司申请H5的域名即可)
private String realm = "https://m.dayuspm.com";
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment