Bläddra i källkod

feat(webview): 将文本显示改为WebView组件并支持HTML内容展示

- 将activity_fo.xml中的TextView替换为WebView组件
- 在XWebViewActivity中添加content参数用于传递HTML内容
- 实现当URL为空时通过loadData方法加载HTML内容的功能
- 添加startWebNoTopBarForContent方法支持无顶部栏的内容展示
- 设置WebView背景色为黑色以匹配应用主题
- 添加ToolsHelper工具类用于判断URL是否为空
徐勤民 1 dag sedan
förälder
incheckning
f47d9ee047

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 1 - 4
app/src/main/java/com/nova/brain/glass/ui/FoActivity.kt


+ 3 - 6
app/src/main/res/layout/activity_fo.xml

@@ -18,15 +18,12 @@
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toStartOf="parent"
             app:layout_constraintTop_toTopOf="parent" />
-        <TextView
+        <WebView
             android:id="@+id/content"
             android:layout_width="0dp"
-            android:layout_height="300dp"
-            android:text="采用手工铺贴,按操作规程CD1442要求进行铺贴,将铺层信息填写在表SAMC 31-71《零件铺层信息、生产记录表》中,并扫描上传。 1)I型表面胶膜铺贴最大搭接6mm或对接最大间隙1.5mm。按投影线及工装余量刻线进行铺贴。 2)织物铺层的方向公差为±5°,铺贴中允许搭接13mm~25mm或对接间隙≤1.5mm,拼缝错开至少25mm,同向铺层之间可以每隔4层重复拼缝的错开位置。按投影线及工装余量刻线进行铺贴,加强层铺贴位置公差为投影位置±2.5mm。"
-            android:textColor="#ff40FF5E"
+            android:layout_height="0dp"
             android:layout_marginTop="10dp"
-            android:lineHeight="20sp"
-            android:textSize="16sp"
+            app:layout_constraintBottom_toBottomOf="parent"
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toStartOf="parent"
             app:layout_constraintTop_toBottomOf="@+id/tvTaskHeader" />

+ 8 - 1
base/src/main/java/com/xuqm/base/web/XWebViewActivity.kt

@@ -22,6 +22,7 @@ import com.xuqm.base.R
 import com.xuqm.base.common.FileHelper
 import com.xuqm.base.common.GlideEngine
 import com.xuqm.base.common.LogHelper
+import com.xuqm.base.common.ToolsHelper
 import com.xuqm.base.databinding.ActivityXWebviewBinding
 import com.xuqm.base.extensions.loge
 import com.xuqm.base.extensions.runWithPermission
@@ -33,6 +34,7 @@ import java.io.File
 class XWebViewActivity : BaseActivity<ActivityXWebviewBinding>() {
     private lateinit var title: String
     private lateinit var url: String
+    private lateinit var content: String
     private var hasTopBar: Boolean = true
 
 
@@ -85,6 +87,7 @@ class XWebViewActivity : BaseActivity<ActivityXWebviewBinding>() {
         intent?.apply {
             title = getStringExtra("title") ?: ""
             url = getStringExtra("url") ?: ""
+            content = getStringExtra("content") ?: ""
         }
 
         viewModel.title.observe(this) {
@@ -111,7 +114,11 @@ class XWebViewActivity : BaseActivity<ActivityXWebviewBinding>() {
         LogHelper.e("lateInitView")
         LogHelper.e(url)
         setTitleText(title)
-        binding.XWebView.loadUrl(url)
+        if (ToolsHelper.isNull(url)){
+            binding.XWebView.loadData(content, "text/html", "utf-8")
+        }else{
+            binding.XWebView.loadUrl(url)
+        }
 
     }
 

+ 7 - 0
base/src/main/java/com/xuqm/base/web/XWebViewHelper.kt

@@ -19,4 +19,11 @@ object XWebViewHelper {
         }
         context.startActivity(intent)
     }
+    fun startWebNoTopBarForContent(context: Context, content: String) {
+        val intent: Intent = Intent(context, XWebViewActivity::class.java).apply {
+            putExtra("content", content)
+            putExtra("hasTopBar", false)
+        }
+        context.startActivity(intent)
+    }
 }

+ 2 - 0
base/src/main/res/layout/activity_x_webview.xml

@@ -5,6 +5,7 @@
 
     <androidx.constraintlayout.widget.ConstraintLayout
         android:layout_width="match_parent"
+        android:background="@color/app_color_black"
         android:layout_height="match_parent"
         tools:context=".web.XWebViewActivity">
 
@@ -20,6 +21,7 @@
             android:id="@+id/X_webView"
             android:layout_width="match_parent"
             android:layout_height="0dp"
+            android:background="@color/app_color_black"
             app:layout_constraintTop_toBottomOf="@id/X_progressBar"
             app:layout_constraintBottom_toBottomOf="parent"/>
 

Vissa filer visades inte eftersom för många filer har ändrats