Commit e1a2fc06 authored by wanglei's avatar wanglei

...

parent 00d02a7a
...@@ -91,8 +91,8 @@ class WebBrowserActivity : BaseActivity<ActivityWebBrowserBinding>() { ...@@ -91,8 +91,8 @@ class WebBrowserActivity : BaseActivity<ActivityWebBrowserBinding>() {
binding.editWeb.setOnEditorActionListener(object : TextView.OnEditorActionListener { binding.editWeb.setOnEditorActionListener(object : TextView.OnEditorActionListener {
override fun onEditorAction(v: TextView?, actionId: Int, event: KeyEvent?): Boolean { override fun onEditorAction(v: TextView?, actionId: Int, event: KeyEvent?): Boolean {
if (actionId == EditorInfo.IME_ACTION_DONE) { if (actionId == EditorInfo.IME_ACTION_DONE) {
val url = v?.text.toString() val content = HomeFragment.getWWWSearch(v?.text.toString()) ?: searchAction(v?.text.toString())
currentFragment?.loadWebView(searchAction(url)) currentFragment?.loadWebView(content)
return true; // 返回true表示事件已处理 return true; // 返回true表示事件已处理
} }
return false return false
......
...@@ -90,8 +90,6 @@ class WevStoreActivity : BaseActivity<ActivityWevStoreBinding>() { ...@@ -90,8 +90,6 @@ class WevStoreActivity : BaseActivity<ActivityWevStoreBinding>() {
// 设置图片与文本之间的间距 // 设置图片与文本之间的间距
val padding = 10 // 例如10dp的间距 val padding = 10 // 例如10dp的间距
tabBinding.tv.setCompoundDrawablePadding(padding) tabBinding.tv.setCompoundDrawablePadding(padding)
// tabBinding.tv.invalidate()
} }
override fun onLoadCleared(placeholder: Drawable?) { override fun onLoadCleared(placeholder: Drawable?) {
......
...@@ -28,6 +28,8 @@ import com.base.browserwhite.utils.NewsUtils.requestNews ...@@ -28,6 +28,8 @@ import com.base.browserwhite.utils.NewsUtils.requestNews
import com.chad.library.adapter4.QuickAdapterHelper import com.chad.library.adapter4.QuickAdapterHelper
import com.chad.library.adapter4.loadState.LoadState import com.chad.library.adapter4.loadState.LoadState
import com.chad.library.adapter4.loadState.trailing.TrailingLoadStateAdapter import com.chad.library.adapter4.loadState.trailing.TrailingLoadStateAdapter
import java.net.MalformedURLException
import java.net.URL
import java.net.URLEncoder import java.net.URLEncoder
import java.nio.charset.StandardCharsets import java.nio.charset.StandardCharsets
...@@ -181,7 +183,8 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() { ...@@ -181,7 +183,8 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
if (actionId == IME_ACTION_DONE) { if (actionId == IME_ACTION_DONE) {
requireActivity().startActivity(Intent(requireContext(), WebBrowserActivity::class.java).apply { requireActivity().startActivity(Intent(requireContext(), WebBrowserActivity::class.java).apply {
putExtra("searchEngine", searchEngine) putExtra("searchEngine", searchEngine)
putExtra("url", searchAction(v?.text.toString())) val content = v?.text.toString()
putExtra("url", getWWWSearch(content) ?: searchAction(content))
}) })
return true; // 返回true表示事件已处理 return true; // 返回true表示事件已处理
} }
...@@ -198,6 +201,33 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() { ...@@ -198,6 +201,33 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
companion object { 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 { fun getGoogleSearch(content: String): String {
val base = "https://www.google.com/" val base = "https://www.google.com/"
val encodedQuery = URLEncoder.encode(content, StandardCharsets.UTF_8.toString()) val encodedQuery = URLEncoder.encode(content, StandardCharsets.UTF_8.toString())
......
...@@ -3,6 +3,7 @@ package com.base.browserwhite.ui.fragment ...@@ -3,6 +3,7 @@ package com.base.browserwhite.ui.fragment
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.net.Uri import android.net.Uri
import android.net.http.SslError import android.net.http.SslError
import android.os.Build
import android.view.View import android.view.View
import android.webkit.CookieManager import android.webkit.CookieManager
import android.webkit.JsResult import android.webkit.JsResult
...@@ -15,13 +16,11 @@ import android.webkit.WebSettings ...@@ -15,13 +16,11 @@ import android.webkit.WebSettings
import android.webkit.WebStorage import android.webkit.WebStorage
import android.webkit.WebView import android.webkit.WebView
import android.webkit.WebViewClient 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.databinding.FragmentWebViewBinding
import com.base.browserwhite.ui.views.DialogViews.showSearchEngineDialog
import com.base.browserwhite.utils.LogEx import com.base.browserwhite.utils.LogEx
import kotlinx.coroutines.Job import kotlinx.coroutines.Job
class WebViewFragment(val url: String) : BaseFragment<FragmentWebViewBinding>() { class WebViewFragment(val url: String) : BaseFragment<FragmentWebViewBinding>() {
private val TAG = "WebViewFragment" private val TAG = "WebViewFragment"
...@@ -58,6 +57,7 @@ class WebViewFragment(val url: String) : BaseFragment<FragmentWebViewBinding>() ...@@ -58,6 +57,7 @@ class WebViewFragment(val url: String) : BaseFragment<FragmentWebViewBinding>()
fun loadWebView(loadUrl: String) { fun loadWebView(loadUrl: String) {
binding.llError.visibility = View.GONE binding.llError.visibility = View.GONE
binding.webView.visibility = View.VISIBLE binding.webView.visibility = View.VISIBLE
LogEx.logDebug(TAG, "loadUrl=$loadUrl")
binding.webView.loadUrl(loadUrl) binding.webView.loadUrl(loadUrl)
} }
...@@ -83,6 +83,20 @@ class WebViewFragment(val url: String) : BaseFragment<FragmentWebViewBinding>() ...@@ -83,6 +83,20 @@ class WebViewFragment(val url: String) : BaseFragment<FragmentWebViewBinding>()
//设置WebView属性,能够执行Javascript脚本 //设置WebView属性,能够执行Javascript脚本
webSettings.javaScriptEnabled = true 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 //设置WebChromeClient
binding.webView.webChromeClient = object : WebChromeClient() { binding.webView.webChromeClient = object : WebChromeClient() {
override fun onProgressChanged(view: WebView, newProgress: Int) { override fun onProgressChanged(view: WebView, newProgress: Int) {
...@@ -147,6 +161,14 @@ class WebViewFragment(val url: String) : BaseFragment<FragmentWebViewBinding>() ...@@ -147,6 +161,14 @@ class WebViewFragment(val url: String) : BaseFragment<FragmentWebViewBinding>()
override fun onReceivedError(view: WebView?, request: WebResourceRequest?, error: WebResourceError?) { override fun onReceivedError(view: WebView?, request: WebResourceRequest?, error: WebResourceError?) {
LogEx.logDebug(TAG, "onReceivedError ${error?.errorCode} ${error?.description}") LogEx.logDebug(TAG, "onReceivedError ${error?.errorCode} ${error?.description}")
super.onReceivedError(view, request, error) 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() job?.cancel()
binding.webView.visibility = View.GONE binding.webView.visibility = View.GONE
binding.llError.visibility = View.VISIBLE binding.llError.visibility = View.VISIBLE
......
...@@ -15,10 +15,10 @@ ...@@ -15,10 +15,10 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_marginTop="24dp" android:layout_marginTop="16dp"
android:text="My Files" android:text="My Files"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="25sp" android:textSize="20sp"
android:textStyle="bold" android:textStyle="bold"
tools:ignore="HardcodedText" /> tools:ignore="HardcodedText" />
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="105dp" android:layout_height="105dp"
android:layout_marginHorizontal="16dp" android:layout_marginHorizontal="16dp"
android:layout_marginTop="16dp" android:layout_marginTop="12dp"
app:cardBackgroundColor="#DEE9F4" app:cardBackgroundColor="#DEE9F4"
app:cardCornerRadius="15dp"> app:cardCornerRadius="15dp">
...@@ -265,9 +265,9 @@ ...@@ -265,9 +265,9 @@
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="195dp" android:layout_height="165dp"
android:layout_marginHorizontal="16dp" android:layout_marginHorizontal="16dp"
android:layout_marginTop="16dp" android:layout_marginTop="12dp"
android:layout_marginBottom="8dp" android:layout_marginBottom="8dp"
android:background="@drawable/bg_storke_dee9f4" android:background="@drawable/bg_storke_dee9f4"
android:orientation="vertical"> android:orientation="vertical">
...@@ -289,8 +289,8 @@ ...@@ -289,8 +289,8 @@
android:orientation="vertical"> android:orientation="vertical">
<ImageView <ImageView
android:layout_width="wrap_content" android:layout_width="35dp"
android:layout_height="wrap_content" android:layout_height="35dp"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:src="@mipmap/picture_f" android:src="@mipmap/picture_f"
...@@ -303,7 +303,7 @@ ...@@ -303,7 +303,7 @@
android:layout_marginTop="2dp" android:layout_marginTop="2dp"
android:text="Picture" android:text="Picture"
android:textColor="#010101" android:textColor="#010101"
android:textSize="14sp" android:textSize="12sp"
tools:ignore="HardcodedText" /> tools:ignore="HardcodedText" />
<TextView <TextView
...@@ -312,7 +312,9 @@ ...@@ -312,7 +312,9 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
android:layout_marginTop="3dp" android:layout_marginTop="3dp"
android:includeFontPadding="false"
android:text="0" android:text="0"
android:textSize="12sp"
tools:ignore="HardcodedText" /> tools:ignore="HardcodedText" />
...@@ -326,8 +328,8 @@ ...@@ -326,8 +328,8 @@
android:orientation="vertical"> android:orientation="vertical">
<ImageView <ImageView
android:layout_width="wrap_content" android:layout_width="35dp"
android:layout_height="wrap_content" android:layout_height="35dp"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:src="@mipmap/video_f" android:src="@mipmap/video_f"
...@@ -340,7 +342,7 @@ ...@@ -340,7 +342,7 @@
android:layout_marginTop="2dp" android:layout_marginTop="2dp"
android:text="Video" android:text="Video"
android:textColor="#010101" android:textColor="#010101"
android:textSize="14sp" android:textSize="12sp"
tools:ignore="HardcodedText" /> tools:ignore="HardcodedText" />
<TextView <TextView
...@@ -349,7 +351,9 @@ ...@@ -349,7 +351,9 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
android:layout_marginTop="3dp" android:layout_marginTop="3dp"
android:includeFontPadding="false"
android:text="0" android:text="0"
android:textSize="12sp"
tools:ignore="HardcodedText" /> tools:ignore="HardcodedText" />
...@@ -363,8 +367,8 @@ ...@@ -363,8 +367,8 @@
android:orientation="vertical"> android:orientation="vertical">
<ImageView <ImageView
android:layout_width="wrap_content" android:layout_width="35dp"
android:layout_height="wrap_content" android:layout_height="35dp"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:src="@mipmap/document_f" android:src="@mipmap/document_f"
...@@ -377,7 +381,7 @@ ...@@ -377,7 +381,7 @@
android:layout_marginTop="2dp" android:layout_marginTop="2dp"
android:text="Document" android:text="Document"
android:textColor="#010101" android:textColor="#010101"
android:textSize="14sp" android:textSize="12sp"
tools:ignore="HardcodedText" /> tools:ignore="HardcodedText" />
<TextView <TextView
...@@ -386,7 +390,9 @@ ...@@ -386,7 +390,9 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
android:layout_marginTop="3dp" android:layout_marginTop="3dp"
android:includeFontPadding="false"
android:text="0" android:text="0"
android:textSize="12sp"
tools:ignore="HardcodedText" /> tools:ignore="HardcodedText" />
...@@ -414,8 +420,8 @@ ...@@ -414,8 +420,8 @@
android:orientation="vertical"> android:orientation="vertical">
<ImageView <ImageView
android:layout_width="wrap_content" android:layout_width="35dp"
android:layout_height="wrap_content" android:layout_height="35dp"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:src="@mipmap/apk_f" android:src="@mipmap/apk_f"
...@@ -428,7 +434,7 @@ ...@@ -428,7 +434,7 @@
android:layout_marginTop="2dp" android:layout_marginTop="2dp"
android:text="Apk File" android:text="Apk File"
android:textColor="#010101" android:textColor="#010101"
android:textSize="14sp" android:textSize="12sp"
tools:ignore="HardcodedText" /> tools:ignore="HardcodedText" />
<TextView <TextView
...@@ -437,7 +443,9 @@ ...@@ -437,7 +443,9 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
android:layout_marginTop="3dp" android:layout_marginTop="3dp"
android:includeFontPadding="false"
android:text="0" android:text="0"
android:textSize="12sp"
tools:ignore="HardcodedText" /> tools:ignore="HardcodedText" />
...@@ -451,8 +459,8 @@ ...@@ -451,8 +459,8 @@
android:orientation="vertical"> android:orientation="vertical">
<ImageView <ImageView
android:layout_width="wrap_content" android:layout_width="35dp"
android:layout_height="wrap_content" android:layout_height="35dp"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:src="@mipmap/music_f" android:src="@mipmap/music_f"
...@@ -465,7 +473,7 @@ ...@@ -465,7 +473,7 @@
android:layout_marginTop="2dp" android:layout_marginTop="2dp"
android:text="Music" android:text="Music"
android:textColor="#010101" android:textColor="#010101"
android:textSize="14sp" android:textSize="12sp"
tools:ignore="HardcodedText" /> tools:ignore="HardcodedText" />
<TextView <TextView
...@@ -474,7 +482,9 @@ ...@@ -474,7 +482,9 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
android:layout_marginTop="3dp" android:layout_marginTop="3dp"
android:includeFontPadding="false"
android:text="0" android:text="0"
android:textSize="12sp"
tools:ignore="HardcodedText" /> tools:ignore="HardcodedText" />
...@@ -488,8 +498,8 @@ ...@@ -488,8 +498,8 @@
android:orientation="vertical"> android:orientation="vertical">
<ImageView <ImageView
android:layout_width="wrap_content" android:layout_width="35dp"
android:layout_height="wrap_content" android:layout_height="35dp"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_marginTop="8dp" android:layout_marginTop="8dp"
android:src="@mipmap/zip_f" android:src="@mipmap/zip_f"
...@@ -502,7 +512,7 @@ ...@@ -502,7 +512,7 @@
android:layout_marginTop="2dp" android:layout_marginTop="2dp"
android:text="Zip File" android:text="Zip File"
android:textColor="#010101" android:textColor="#010101"
android:textSize="14sp" android:textSize="12sp"
tools:ignore="HardcodedText" /> tools:ignore="HardcodedText" />
<TextView <TextView
...@@ -511,6 +521,7 @@ ...@@ -511,6 +521,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
android:layout_marginTop="3dp" android:layout_marginTop="3dp"
android:includeFontPadding="false"
android:text="0" android:text="0"
tools:ignore="HardcodedText" /> tools:ignore="HardcodedText" />
...@@ -524,7 +535,7 @@ ...@@ -524,7 +535,7 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:layout_marginTop="12dp" android:layout_marginTop="8dp"
android:text="Recent Files" android:text="Recent Files"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="18sp" android:textSize="18sp"
...@@ -536,7 +547,7 @@ ...@@ -536,7 +547,7 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="75dp" android:layout_height="75dp"
android:layout_marginHorizontal="15dp" android:layout_marginHorizontal="15dp"
android:layout_marginTop="18dp" android:layout_marginTop="10dp"
android:background="@drawable/bg_storke_dee9f4" android:background="@drawable/bg_storke_dee9f4"
android:orientation="horizontal"> android:orientation="horizontal">
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
android:layout_marginStart="16dp" android:layout_marginStart="16dp"
android:text="@string/app_name" android:text="@string/app_name"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="25sp" android:textSize="20sp"
android:textStyle="bold" android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
...@@ -138,6 +138,7 @@ ...@@ -138,6 +138,7 @@
android:gravity="center_vertical" android:gravity="center_vertical"
android:hint="Search or enter website address" android:hint="Search or enter website address"
android:imeOptions="actionDone" android:imeOptions="actionDone"
android:inputType="textUri"
android:paddingHorizontal="15dp" android:paddingHorizontal="15dp"
android:singleLine="true" android:singleLine="true"
android:textColorHint="#858587" android:textColorHint="#858587"
......
...@@ -9,8 +9,8 @@ ...@@ -9,8 +9,8 @@
<androidx.cardview.widget.CardView <androidx.cardview.widget.CardView
android:id="@+id/card" android:id="@+id/card"
android:layout_width="50dp" android:layout_width="40dp"
android:layout_height="50dp" android:layout_height="40dp"
android:layout_marginVertical="4dp" android:layout_marginVertical="4dp"
android:layout_marginStart="8dp" android:layout_marginStart="8dp"
app:cardElevation="0dp" 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