Commit e1a2fc06 authored by wanglei's avatar wanglei

...

parent 00d02a7a
......@@ -91,8 +91,8 @@ class WebBrowserActivity : BaseActivity<ActivityWebBrowserBinding>() {
binding.editWeb.setOnEditorActionListener(object : TextView.OnEditorActionListener {
override fun onEditorAction(v: TextView?, actionId: Int, event: KeyEvent?): Boolean {
if (actionId == EditorInfo.IME_ACTION_DONE) {
val url = v?.text.toString()
currentFragment?.loadWebView(searchAction(url))
val content = HomeFragment.getWWWSearch(v?.text.toString()) ?: searchAction(v?.text.toString())
currentFragment?.loadWebView(content)
return true; // 返回true表示事件已处理
}
return false
......
......@@ -90,8 +90,6 @@ class WevStoreActivity : BaseActivity<ActivityWevStoreBinding>() {
// 设置图片与文本之间的间距
val padding = 10 // 例如10dp的间距
tabBinding.tv.setCompoundDrawablePadding(padding)
// tabBinding.tv.invalidate()
}
override fun onLoadCleared(placeholder: Drawable?) {
......
......@@ -28,6 +28,8 @@ import com.base.browserwhite.utils.NewsUtils.requestNews
import com.chad.library.adapter4.QuickAdapterHelper
import com.chad.library.adapter4.loadState.LoadState
import com.chad.library.adapter4.loadState.trailing.TrailingLoadStateAdapter
import java.net.MalformedURLException
import java.net.URL
import java.net.URLEncoder
import java.nio.charset.StandardCharsets
......@@ -181,7 +183,8 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
if (actionId == IME_ACTION_DONE) {
requireActivity().startActivity(Intent(requireContext(), WebBrowserActivity::class.java).apply {
putExtra("searchEngine", searchEngine)
putExtra("url", searchAction(v?.text.toString()))
val content = v?.text.toString()
putExtra("url", getWWWSearch(content) ?: searchAction(content))
})
return true; // 返回true表示事件已处理
}
......@@ -198,6 +201,33 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
companion object {
fun isValidUrl(urlString: String?): Boolean {
return try {
// 尝试将字符串转换为URL对象
URL(urlString)
true
} catch (e: MalformedURLException) {
// 如果转换失败,说明不是有效的URL
false
}
}
fun isMatchesUrl(urlString: String): Boolean {
val pattern = "^(https?://)?(www\\.)?[a-z0-9]+\\.[a-z0-9.-]+\\.[a-z]{2,6}(:[0-9]{1,5})?(/.*)?$"
return urlString.matches(pattern.toRegex())
}
fun getWWWSearch(content: String): String? {
if (isValidUrl(content) || isMatchesUrl(content)) {
return if (content.contains("http") or content.contains("https")) {
content
} else {
"https://$content"
}
}
return null
}
fun getGoogleSearch(content: String): String {
val base = "https://www.google.com/"
val encodedQuery = URLEncoder.encode(content, StandardCharsets.UTF_8.toString())
......
......@@ -3,6 +3,7 @@ package com.base.browserwhite.ui.fragment
import android.annotation.SuppressLint
import android.net.Uri
import android.net.http.SslError
import android.os.Build
import android.view.View
import android.webkit.CookieManager
import android.webkit.JsResult
......@@ -15,13 +16,11 @@ import android.webkit.WebSettings
import android.webkit.WebStorage
import android.webkit.WebView
import android.webkit.WebViewClient
import com.base.browserwhite.R
import com.base.browserwhite.bean.ConstObject
import com.base.browserwhite.databinding.FragmentWebViewBinding
import com.base.browserwhite.ui.views.DialogViews.showSearchEngineDialog
import com.base.browserwhite.utils.LogEx
import kotlinx.coroutines.Job
class WebViewFragment(val url: String) : BaseFragment<FragmentWebViewBinding>() {
private val TAG = "WebViewFragment"
......@@ -58,6 +57,7 @@ class WebViewFragment(val url: String) : BaseFragment<FragmentWebViewBinding>()
fun loadWebView(loadUrl: String) {
binding.llError.visibility = View.GONE
binding.webView.visibility = View.VISIBLE
LogEx.logDebug(TAG, "loadUrl=$loadUrl")
binding.webView.loadUrl(loadUrl)
}
......@@ -83,6 +83,20 @@ class WebViewFragment(val url: String) : BaseFragment<FragmentWebViewBinding>()
//设置WebView属性,能够执行Javascript脚本
webSettings.javaScriptEnabled = true
//设置混合内容模式:对于HTTPS和HTTP混合内容的加载,需要设置WebView以允许混合内容:
webSettings.mixedContentMode = WebSettings.MIXED_CONTENT_ALWAYS_ALLOW
//使用CookieManager设置允许跨域Cookie
CookieManager.getInstance().setAcceptThirdPartyCookies(binding.webView, true)
//适应屏幕设置
webSettings.useWideViewPort = true
webSettings.loadWithOverviewMode = true
//网页使用localStorage等Web存储API,需要启用DOM存储
webSettings.domStorageEnabled = true
//设置WebChromeClient
binding.webView.webChromeClient = object : WebChromeClient() {
override fun onProgressChanged(view: WebView, newProgress: Int) {
......@@ -147,6 +161,14 @@ class WebViewFragment(val url: String) : BaseFragment<FragmentWebViewBinding>()
override fun onReceivedError(view: WebView?, request: WebResourceRequest?, error: WebResourceError?) {
LogEx.logDebug(TAG, "onReceivedError ${error?.errorCode} ${error?.description}")
super.onReceivedError(view, request, error)
if (error?.errorCode == -1) {
//-1 net::ERR_BLOCKED_BY_ORB 跨域读取不影响显示
return
}
if (error?.errorCode == -6) {
//-6 net::ERR_BLOCKED_BY_ORB 服务器拒绝连接,是服务的锅
return
}
job?.cancel()
binding.webView.visibility = View.GONE
binding.llError.visibility = View.VISIBLE
......
......@@ -15,10 +15,10 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="24dp"
android:layout_marginTop="16dp"
android:text="My Files"
android:textColor="@color/black"
android:textSize="25sp"
android:textSize="20sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
......@@ -26,7 +26,7 @@
android:layout_width="match_parent"
android:layout_height="105dp"
android:layout_marginHorizontal="16dp"
android:layout_marginTop="16dp"
android:layout_marginTop="12dp"
app:cardBackgroundColor="#DEE9F4"
app:cardCornerRadius="15dp">
......@@ -265,9 +265,9 @@
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="195dp"
android:layout_height="165dp"
android:layout_marginHorizontal="16dp"
android:layout_marginTop="16dp"
android:layout_marginTop="12dp"
android:layout_marginBottom="8dp"
android:background="@drawable/bg_storke_dee9f4"
android:orientation="vertical">
......@@ -289,8 +289,8 @@
android:orientation="vertical">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_width="35dp"
android:layout_height="35dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="8dp"
android:src="@mipmap/picture_f"
......@@ -303,7 +303,7 @@
android:layout_marginTop="2dp"
android:text="Picture"
android:textColor="#010101"
android:textSize="14sp"
android:textSize="12sp"
tools:ignore="HardcodedText" />
<TextView
......@@ -312,7 +312,9 @@
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="3dp"
android:includeFontPadding="false"
android:text="0"
android:textSize="12sp"
tools:ignore="HardcodedText" />
......@@ -326,8 +328,8 @@
android:orientation="vertical">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_width="35dp"
android:layout_height="35dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="8dp"
android:src="@mipmap/video_f"
......@@ -340,7 +342,7 @@
android:layout_marginTop="2dp"
android:text="Video"
android:textColor="#010101"
android:textSize="14sp"
android:textSize="12sp"
tools:ignore="HardcodedText" />
<TextView
......@@ -349,7 +351,9 @@
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="3dp"
android:includeFontPadding="false"
android:text="0"
android:textSize="12sp"
tools:ignore="HardcodedText" />
......@@ -363,8 +367,8 @@
android:orientation="vertical">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_width="35dp"
android:layout_height="35dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="8dp"
android:src="@mipmap/document_f"
......@@ -377,7 +381,7 @@
android:layout_marginTop="2dp"
android:text="Document"
android:textColor="#010101"
android:textSize="14sp"
android:textSize="12sp"
tools:ignore="HardcodedText" />
<TextView
......@@ -386,7 +390,9 @@
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="3dp"
android:includeFontPadding="false"
android:text="0"
android:textSize="12sp"
tools:ignore="HardcodedText" />
......@@ -414,8 +420,8 @@
android:orientation="vertical">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_width="35dp"
android:layout_height="35dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="8dp"
android:src="@mipmap/apk_f"
......@@ -428,7 +434,7 @@
android:layout_marginTop="2dp"
android:text="Apk File"
android:textColor="#010101"
android:textSize="14sp"
android:textSize="12sp"
tools:ignore="HardcodedText" />
<TextView
......@@ -437,7 +443,9 @@
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="3dp"
android:includeFontPadding="false"
android:text="0"
android:textSize="12sp"
tools:ignore="HardcodedText" />
......@@ -451,8 +459,8 @@
android:orientation="vertical">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_width="35dp"
android:layout_height="35dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="8dp"
android:src="@mipmap/music_f"
......@@ -465,7 +473,7 @@
android:layout_marginTop="2dp"
android:text="Music"
android:textColor="#010101"
android:textSize="14sp"
android:textSize="12sp"
tools:ignore="HardcodedText" />
<TextView
......@@ -474,7 +482,9 @@
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="3dp"
android:includeFontPadding="false"
android:text="0"
android:textSize="12sp"
tools:ignore="HardcodedText" />
......@@ -488,8 +498,8 @@
android:orientation="vertical">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_width="35dp"
android:layout_height="35dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="8dp"
android:src="@mipmap/zip_f"
......@@ -502,7 +512,7 @@
android:layout_marginTop="2dp"
android:text="Zip File"
android:textColor="#010101"
android:textSize="14sp"
android:textSize="12sp"
tools:ignore="HardcodedText" />
<TextView
......@@ -511,6 +521,7 @@
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="3dp"
android:includeFontPadding="false"
android:text="0"
tools:ignore="HardcodedText" />
......@@ -524,7 +535,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="12dp"
android:layout_marginTop="8dp"
android:text="Recent Files"
android:textColor="@color/black"
android:textSize="18sp"
......@@ -536,7 +547,7 @@
android:layout_width="match_parent"
android:layout_height="75dp"
android:layout_marginHorizontal="15dp"
android:layout_marginTop="18dp"
android:layout_marginTop="10dp"
android:background="@drawable/bg_storke_dee9f4"
android:orientation="horizontal">
......
......@@ -26,7 +26,7 @@
android:layout_marginStart="16dp"
android:text="@string/app_name"
android:textColor="@color/black"
android:textSize="25sp"
android:textSize="20sp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
......@@ -138,6 +138,7 @@
android:gravity="center_vertical"
android:hint="Search or enter website address"
android:imeOptions="actionDone"
android:inputType="textUri"
android:paddingHorizontal="15dp"
android:singleLine="true"
android:textColorHint="#858587"
......
......@@ -9,8 +9,8 @@
<androidx.cardview.widget.CardView
android:id="@+id/card"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginVertical="4dp"
android:layout_marginStart="8dp"
app:cardElevation="0dp"
......
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 to comment