diff --git a/app/build.gradle b/app/build.gradle index ffcfac6..2d69a78 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -126,4 +126,6 @@ implementation 'org.greenrobot:greendao:3.3.0' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' + //WebView + implementation 'com.just.agentweb:agentweb-androidx:4.1.4' } \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ffcfac6..2d69a78 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -126,4 +126,6 @@ implementation 'org.greenrobot:greendao:3.3.0' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' + //WebView + implementation 'com.just.agentweb:agentweb-androidx:4.1.4' } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt index aca09d4..0829cc5 100644 --- a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt +++ b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt @@ -206,10 +206,6 @@ fun String.watchAttachFile(context: Context) { if (this.endsWith("pdf")) { context.navigatePageTo(this) - } else if ( - this.endsWith("doc") || this.endsWith("docx") - ) { - context.navigatePageTo(this) } else if (this.endsWith("txt")) { context.navigatePageTo(this) } else if ( @@ -219,7 +215,7 @@ urls.add(this.combineImagePath()) context.navigatePageTo(0, urls) } else { - "文件类型未知,无法打开附件".show(context) + context.navigatePageTo(this) } } diff --git a/app/build.gradle b/app/build.gradle index ffcfac6..2d69a78 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -126,4 +126,6 @@ implementation 'org.greenrobot:greendao:3.3.0' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' + //WebView + implementation 'com.just.agentweb:agentweb-androidx:4.1.4' } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt index aca09d4..0829cc5 100644 --- a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt +++ b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt @@ -206,10 +206,6 @@ fun String.watchAttachFile(context: Context) { if (this.endsWith("pdf")) { context.navigatePageTo(this) - } else if ( - this.endsWith("doc") || this.endsWith("docx") - ) { - context.navigatePageTo(this) } else if (this.endsWith("txt")) { context.navigatePageTo(this) } else if ( @@ -219,7 +215,7 @@ urls.add(this.combineImagePath()) context.navigatePageTo(0, urls) } else { - "文件类型未知,无法打开附件".show(context) + context.navigatePageTo(this) } } diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewDocumentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewDocumentActivity.kt index 4b16ae8..2c30824 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewDocumentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewDocumentActivity.kt @@ -1,15 +1,69 @@ package com.casic.xz.meterage.view.notice +import android.graphics.Bitmap +import android.util.Log +import android.view.ViewGroup +import android.webkit.WebView +import android.widget.LinearLayout import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.combineFilePath +import com.casic.xz.meterage.extensions.initLayoutImmersionBar +import com.gyf.immersionbar.ImmersionBar +import com.just.agentweb.AgentWeb +import com.just.agentweb.WebViewClient import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.utils.Constant +import kotlinx.android.synthetic.main.activity_preview_doc.* +import kotlinx.android.synthetic.main.include_base_title.* + class PreviewDocumentActivity : KotlinBaseActivity() { - override fun initData() { + private val kTag = "PreviewDocumentActivity" + private lateinit var agentWeb: AgentWeb + + override fun initData() { + val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM)!! + titleView.text = minioFileName + + val url = minioFileName.combineFilePath() + Log.d(kTag, "initData: $url") + + //转为在线预览DOC + val previewUrl = "https://view.xdocin.com/view?src=${url}" + + agentWeb = AgentWeb.with(this) + .setAgentWebParent( + containerView, + LinearLayout.LayoutParams( + ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT + ) + ) + .useDefaultIndicator() + .setWebViewClient(object : WebViewClient() { + override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) { + + } + + override fun onPageFinished(view: WebView?, url: String?) { + + } + }) + .setSecurityType(AgentWeb.SecurityType.STRICT_CHECK) + .interceptUnkownUrl() + .createAgentWeb() + .ready() + .go(previewUrl) + val webView = agentWeb.webCreator.webView + webView.settings.useWideViewPort = true + webView.settings.builtInZoomControls = true + webView.settings.setSupportZoom(true) + webView.settings.displayZoomControls = false + webView.setInitialScale(4) } override fun initEvent() { - + leftBackView.setOnClickListener { finish() } } override fun initLayoutView(): Int = R.layout.activity_preview_doc @@ -19,6 +73,22 @@ } override fun setupTopBarLayout() { + ImmersionBar.with(this).statusBarDarkFont(true).init() + initLayoutImmersionBar(rootView) + } + override fun onResume() { + agentWeb.webLifeCycle.onResume() + super.onResume() + } + + override fun onPause() { + agentWeb.webLifeCycle.onPause() + super.onPause() + } + + override fun onDestroy() { + agentWeb.webLifeCycle.onDestroy() + super.onDestroy() } } \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index ffcfac6..2d69a78 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -126,4 +126,6 @@ implementation 'org.greenrobot:greendao:3.3.0' //标签流式布局 implementation group: 'com.hyman', name: 'flowlayout-lib', version: '1.1.2' + //WebView + implementation 'com.just.agentweb:agentweb-androidx:4.1.4' } \ No newline at end of file diff --git a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt index aca09d4..0829cc5 100644 --- a/app/src/main/java/com/casic/xz/meterage/extensions/String.kt +++ b/app/src/main/java/com/casic/xz/meterage/extensions/String.kt @@ -206,10 +206,6 @@ fun String.watchAttachFile(context: Context) { if (this.endsWith("pdf")) { context.navigatePageTo(this) - } else if ( - this.endsWith("doc") || this.endsWith("docx") - ) { - context.navigatePageTo(this) } else if (this.endsWith("txt")) { context.navigatePageTo(this) } else if ( @@ -219,7 +215,7 @@ urls.add(this.combineImagePath()) context.navigatePageTo(0, urls) } else { - "文件类型未知,无法打开附件".show(context) + context.navigatePageTo(this) } } diff --git a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewDocumentActivity.kt b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewDocumentActivity.kt index 4b16ae8..2c30824 100644 --- a/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewDocumentActivity.kt +++ b/app/src/main/java/com/casic/xz/meterage/view/notice/PreviewDocumentActivity.kt @@ -1,15 +1,69 @@ package com.casic.xz.meterage.view.notice +import android.graphics.Bitmap +import android.util.Log +import android.view.ViewGroup +import android.webkit.WebView +import android.widget.LinearLayout import com.casic.xz.meterage.R +import com.casic.xz.meterage.extensions.combineFilePath +import com.casic.xz.meterage.extensions.initLayoutImmersionBar +import com.gyf.immersionbar.ImmersionBar +import com.just.agentweb.AgentWeb +import com.just.agentweb.WebViewClient import com.pengxh.kt.lite.base.KotlinBaseActivity +import com.pengxh.kt.lite.utils.Constant +import kotlinx.android.synthetic.main.activity_preview_doc.* +import kotlinx.android.synthetic.main.include_base_title.* + class PreviewDocumentActivity : KotlinBaseActivity() { - override fun initData() { + private val kTag = "PreviewDocumentActivity" + private lateinit var agentWeb: AgentWeb + + override fun initData() { + val minioFileName = intent.getStringExtra(Constant.INTENT_PARAM)!! + titleView.text = minioFileName + + val url = minioFileName.combineFilePath() + Log.d(kTag, "initData: $url") + + //转为在线预览DOC + val previewUrl = "https://view.xdocin.com/view?src=${url}" + + agentWeb = AgentWeb.with(this) + .setAgentWebParent( + containerView, + LinearLayout.LayoutParams( + ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT + ) + ) + .useDefaultIndicator() + .setWebViewClient(object : WebViewClient() { + override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) { + + } + + override fun onPageFinished(view: WebView?, url: String?) { + + } + }) + .setSecurityType(AgentWeb.SecurityType.STRICT_CHECK) + .interceptUnkownUrl() + .createAgentWeb() + .ready() + .go(previewUrl) + val webView = agentWeb.webCreator.webView + webView.settings.useWideViewPort = true + webView.settings.builtInZoomControls = true + webView.settings.setSupportZoom(true) + webView.settings.displayZoomControls = false + webView.setInitialScale(4) } override fun initEvent() { - + leftBackView.setOnClickListener { finish() } } override fun initLayoutView(): Int = R.layout.activity_preview_doc @@ -19,6 +73,22 @@ } override fun setupTopBarLayout() { + ImmersionBar.with(this).statusBarDarkFont(true).init() + initLayoutImmersionBar(rootView) + } + override fun onResume() { + agentWeb.webLifeCycle.onResume() + super.onResume() + } + + override fun onPause() { + agentWeb.webLifeCycle.onPause() + super.onPause() + } + + override fun onDestroy() { + agentWeb.webLifeCycle.onDestroy() + super.onDestroy() } } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_preview_doc.xml b/app/src/main/res/layout/activity_preview_doc.xml index 77d9ef6..fbbcde5 100644 --- a/app/src/main/res/layout/activity_preview_doc.xml +++ b/app/src/main/res/layout/activity_preview_doc.xml @@ -1,6 +1,16 @@ - + android:layout_height="match_parent" + android:background="@color/white" + android:orientation="vertical"> - \ No newline at end of file + + + + \ No newline at end of file