|
@@ -1,22 +1,33 @@
|
|
package com.swago.baseswago.activity
|
|
package com.swago.baseswago.activity
|
|
|
|
|
|
import android.annotation.SuppressLint
|
|
import android.annotation.SuppressLint
|
|
|
|
+import android.net.Uri
|
|
import android.os.Build
|
|
import android.os.Build
|
|
import android.view.KeyEvent
|
|
import android.view.KeyEvent
|
|
import android.view.ViewGroup
|
|
import android.view.ViewGroup
|
|
import android.webkit.*
|
|
import android.webkit.*
|
|
import android.widget.FrameLayout
|
|
import android.widget.FrameLayout
|
|
import androidx.constraintlayout.widget.ConstraintLayout
|
|
import androidx.constraintlayout.widget.ConstraintLayout
|
|
|
|
+import androidx.fragment.app.FragmentActivity
|
|
|
|
+import androidx.lifecycle.lifecycleScope
|
|
import com.alibaba.android.arouter.facade.annotation.Autowired
|
|
import com.alibaba.android.arouter.facade.annotation.Autowired
|
|
import com.alibaba.android.arouter.facade.annotation.Route
|
|
import com.alibaba.android.arouter.facade.annotation.Route
|
|
import com.alibaba.android.arouter.launcher.ARouter
|
|
import com.alibaba.android.arouter.launcher.ARouter
|
|
|
|
+import com.huantansheng.easyphotos.EasyPhotos
|
|
|
|
+import com.huantansheng.easyphotos.callback.SelectCallback
|
|
|
|
+import com.huantansheng.easyphotos.models.album.entity.Photo
|
|
import com.swago.baseswago.R
|
|
import com.swago.baseswago.R
|
|
import com.swago.baseswago.constant.ARouteConstant
|
|
import com.swago.baseswago.constant.ARouteConstant
|
|
|
|
+import com.swago.baseswago.constant.UrlConstant
|
|
import com.swago.baseswago.databinding.ActivityWebBinding
|
|
import com.swago.baseswago.databinding.ActivityWebBinding
|
|
-import com.swago.baseswago.util.DpPxUtil
|
|
|
|
-import com.swago.baseswago.util.SwagoInfo
|
|
|
|
-import com.swago.baseswago.util.UserInfo
|
|
|
|
|
|
+import com.swago.baseswago.util.*
|
|
|
|
+import kotlinx.coroutines.Dispatchers
|
|
|
|
+import kotlinx.coroutines.launch
|
|
|
|
+import kotlinx.coroutines.withContext
|
|
import org.json.JSONObject
|
|
import org.json.JSONObject
|
|
|
|
+import top.zibin.luban.Luban
|
|
|
|
+import top.zibin.luban.OnCompressListener
|
|
|
|
+import java.io.File
|
|
|
|
|
|
/**
|
|
/**
|
|
*@date 2021/8/30 10:19
|
|
*@date 2021/8/30 10:19
|
|
@@ -90,6 +101,61 @@ class WebViewActivity : BaseXActivity<ActivityWebBinding>() {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ webChromeClient = object:WebChromeClient(){
|
|
|
|
+ override fun onShowFileChooser(
|
|
|
|
+ webView: WebView?,
|
|
|
|
+ filePathCallback: ValueCallback<Array<Uri>>?,
|
|
|
|
+ fileChooserParams: FileChooserParams?
|
|
|
|
+ ): Boolean {
|
|
|
|
+ var compressPicPath = ""
|
|
|
|
+ EasyPhotos.createAlbum(
|
|
|
|
+ this@WebViewActivity,
|
|
|
|
+ true,
|
|
|
|
+ false,
|
|
|
|
+ GlideEngine.getInstance()
|
|
|
|
+ )
|
|
|
|
+ .setFileProviderAuthority(AppContext.getContext().packageName + "/fileprovider")
|
|
|
|
+ .setCount(1)//参数说明:最大可选数,默认1
|
|
|
|
+ .start(object : SelectCallback() {
|
|
|
|
+ override fun onResult(
|
|
|
|
+ p0: java.util.ArrayList<Photo>?,
|
|
|
|
+ isOriginal: Boolean
|
|
|
|
+ ) {
|
|
|
|
+ if (p0 != null && p0.size > 0) {
|
|
|
|
+ //上传前压缩
|
|
|
|
+ Luban.with(this@WebViewActivity)
|
|
|
|
+ .load(p0[0].path)
|
|
|
|
+ .ignoreBy(100)
|
|
|
|
+ .setCompressListener(object : OnCompressListener {
|
|
|
|
+ override fun onStart() {
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ override fun onSuccess(file: File?) {
|
|
|
|
+ if (file == null){
|
|
|
|
+ filePathCallback?.onReceiveValue(null)
|
|
|
|
+ }else{
|
|
|
|
+ compressPicPath = file.toString()
|
|
|
|
+ val array = Array<Uri>(1) {Uri.fromFile(File(compressPicPath))}
|
|
|
|
+ filePathCallback?.onReceiveValue(array)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ override fun onError(e: Throwable?) {
|
|
|
|
+ filePathCallback?.onReceiveValue(null)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }).launch()
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ override fun onCancel() {
|
|
|
|
+ filePathCallback?.onReceiveValue(null)
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ return true
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
//设置大小
|
|
//设置大小
|
|
val params = ConstraintLayout.LayoutParams(
|
|
val params = ConstraintLayout.LayoutParams(
|
|
ViewGroup.LayoutParams.MATCH_PARENT,
|
|
ViewGroup.LayoutParams.MATCH_PARENT,
|
|
@@ -114,24 +180,32 @@ class WebViewActivity : BaseXActivity<ActivityWebBinding>() {
|
|
|
|
|
|
override fun initLiveData() {}
|
|
override fun initLiveData() {}
|
|
|
|
|
|
|
|
+
|
|
|
|
+ override fun onBackPressed() {
|
|
|
|
+ goBack()
|
|
|
|
+ }
|
|
override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
|
|
override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
|
|
if (keyCode == KeyEvent.KEYCODE_BACK) {
|
|
if (keyCode == KeyEvent.KEYCODE_BACK) {
|
|
- webView?.let { webView->
|
|
|
|
- if (webView.canGoBack()) {
|
|
|
|
- webView.url?.let {
|
|
|
|
- if (it.contains(url)) {
|
|
|
|
- webView.goBack()
|
|
|
|
- } else {
|
|
|
|
- finish()
|
|
|
|
- }
|
|
|
|
|
|
+ goBack()
|
|
|
|
+ return true
|
|
|
|
+ }
|
|
|
|
+ return false
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private fun goBack() {
|
|
|
|
+ webView?.let { webView->
|
|
|
|
+ if (webView.canGoBack()) {
|
|
|
|
+ webView.url?.let {
|
|
|
|
+ if (it.contains(url) || it.contains("withdrawal")) {
|
|
|
|
+ webView.goBack()
|
|
|
|
+ } else {
|
|
|
|
+ finish()
|
|
}
|
|
}
|
|
- } else {
|
|
|
|
- finish()
|
|
|
|
}
|
|
}
|
|
|
|
+ } else {
|
|
|
|
+ finish()
|
|
}
|
|
}
|
|
- return true
|
|
|
|
}
|
|
}
|
|
- return false
|
|
|
|
}
|
|
}
|
|
|
|
|
|
override fun onDestroy() {
|
|
override fun onDestroy() {
|