...
This commit is contained in:
@@ -35,6 +35,7 @@ import android.webkit.CookieSyncManager
|
||||
import android.webkit.DownloadListener
|
||||
import android.webkit.GeolocationPermissions
|
||||
import android.webkit.PermissionRequest
|
||||
import android.webkit.URLUtil
|
||||
import android.webkit.ValueCallback
|
||||
import android.webkit.WebChromeClient
|
||||
import android.webkit.WebResourceRequest
|
||||
@@ -86,6 +87,7 @@ import kr.lunaticbum.utils.ui.ViewUtil
|
||||
import java.io.ByteArrayInputStream
|
||||
import java.io.File
|
||||
import java.io.IOException
|
||||
import java.net.URL
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.Date
|
||||
import kotlin.math.abs
|
||||
@@ -1268,10 +1270,14 @@ class AwesomeWebViewActivity : AppCompatActivity(), View.OnClickListener,
|
||||
CommonJsHelper.getInstance().addJavascriptInterface(webView)
|
||||
}
|
||||
|
||||
var host : String? = ""
|
||||
protected fun load() {
|
||||
if (data != null) {
|
||||
webView!!.loadData(data!!, mimeType, encoding)
|
||||
} else if (url != null) {
|
||||
// host = url!!.toUri().host?.replace("www.","")?.replace("m.","")
|
||||
LogUtil.e("url!!.toUri(). >> ${url!!.toUri().authority}")
|
||||
LogUtil.e("url!!.toUri(). >> ${url!!.toUri().encodedFragment}")
|
||||
if (extraHeaders == null) {
|
||||
webView!!.loadUrl(url!!)
|
||||
} else {
|
||||
@@ -1861,57 +1867,61 @@ LogUtil.e("onBackPressed ${webChromeClient} && ${binding.menus.menuLayout.visibi
|
||||
|
||||
override fun shouldOverrideUrlLoading(view: WebView, url: String): Boolean {
|
||||
handler.sendEmptyMessage(MSG_CLICK_ON_URL)
|
||||
|
||||
if (url.endsWith(".mp4")) {
|
||||
val intent = Intent(Intent.ACTION_VIEW)
|
||||
intent.setDataAndType(Uri.parse(url), "video/*")
|
||||
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
|
||||
view.context.startActivity(intent)
|
||||
// If we return true, onPageStarted, onPageFinished won't be called.
|
||||
return true
|
||||
} else if (url.startsWith("tel:") || url.startsWith("sms:") || url.startsWith("smsto:") || url
|
||||
.startsWith("mms:") || url.startsWith("mmsto:")
|
||||
) {
|
||||
val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url))
|
||||
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
|
||||
view.context.startActivity(intent)
|
||||
return true // If we return true, onPageStarted, onPageFinished won't be called.
|
||||
} else if (url.startsWith("mailto:")) {
|
||||
val mt = MailTo.parse(url)
|
||||
|
||||
val emailIntent = Intent(Intent.ACTION_SEND)
|
||||
|
||||
emailIntent.setType("text/html")
|
||||
emailIntent.putExtra(Intent.EXTRA_EMAIL, arrayOf(mt.to))
|
||||
emailIntent.putExtra(Intent.EXTRA_SUBJECT, mt.subject)
|
||||
emailIntent.putExtra(Intent.EXTRA_CC, mt.cc)
|
||||
emailIntent.putExtra(Intent.EXTRA_TEXT, mt.body)
|
||||
|
||||
startActivity(emailIntent)
|
||||
|
||||
return true
|
||||
} else if (url.startsWith("http") || url.startsWith("https") || url.startsWith("ftp")) {
|
||||
if (extraHeaders == null || extraHeadersMainPage!! && url != this@AwesomeWebViewActivity.url) {
|
||||
return super.shouldOverrideUrlLoading(view, url)
|
||||
} else {
|
||||
view.loadUrl(url, extraHeaders!!)
|
||||
LogUtil.e("host >>> ${host} , url >>> ${url}")
|
||||
// if (host?.length ?: 0 > 2 && url.contains(host!!)) {
|
||||
if (url.endsWith(".mp4")) {
|
||||
val intent = Intent(Intent.ACTION_VIEW)
|
||||
intent.setDataAndType(Uri.parse(url), "video/*")
|
||||
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
|
||||
view.context.startActivity(intent)
|
||||
// If we return true, onPageStarted, onPageFinished won't be called.
|
||||
return true
|
||||
}
|
||||
} else {
|
||||
if (webViewAppJumpEnabled!!) {
|
||||
try {
|
||||
val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url))
|
||||
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
|
||||
view.context.startActivity(intent)
|
||||
return true // If we return true, onPageStarted, onPageFinished won't be called.
|
||||
} catch (exception: Exception) {
|
||||
exception.printStackTrace()
|
||||
} else if (url.startsWith("tel:") || url.startsWith("sms:") || url.startsWith("smsto:") || url
|
||||
.startsWith("mms:") || url.startsWith("mmsto:")
|
||||
) {
|
||||
val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url))
|
||||
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
|
||||
view.context.startActivity(intent)
|
||||
return true // If we return true, onPageStarted, onPageFinished won't be called.
|
||||
} else if (url.startsWith("mailto:")) {
|
||||
val mt = MailTo.parse(url)
|
||||
|
||||
val emailIntent = Intent(Intent.ACTION_SEND)
|
||||
|
||||
emailIntent.setType("text/html")
|
||||
emailIntent.putExtra(Intent.EXTRA_EMAIL, arrayOf(mt.to))
|
||||
emailIntent.putExtra(Intent.EXTRA_SUBJECT, mt.subject)
|
||||
emailIntent.putExtra(Intent.EXTRA_CC, mt.cc)
|
||||
emailIntent.putExtra(Intent.EXTRA_TEXT, mt.body)
|
||||
|
||||
startActivity(emailIntent)
|
||||
|
||||
return true
|
||||
} else if (url.startsWith("http") || url.startsWith("https") || url.startsWith("ftp")) {
|
||||
if (extraHeaders == null || extraHeadersMainPage!! && url != this@AwesomeWebViewActivity.url) {
|
||||
return super.shouldOverrideUrlLoading(view, url)
|
||||
} else {
|
||||
view.loadUrl(url, extraHeaders!!)
|
||||
return true
|
||||
}
|
||||
} else {
|
||||
return super.shouldOverrideUrlLoading(view, url)
|
||||
if (webViewAppJumpEnabled!!) {
|
||||
try {
|
||||
val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url))
|
||||
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
|
||||
view.context.startActivity(intent)
|
||||
return true // If we return true, onPageStarted, onPageFinished won't be called.
|
||||
} catch (exception: Exception) {
|
||||
exception.printStackTrace()
|
||||
return true
|
||||
}
|
||||
} else {
|
||||
return super.shouldOverrideUrlLoading(view, url)
|
||||
}
|
||||
}
|
||||
}
|
||||
// } else {
|
||||
// return true
|
||||
// }
|
||||
}
|
||||
|
||||
override fun onLoadResource(view: WebView, url: String) {
|
||||
|
||||
Reference in New Issue
Block a user