Parcourir la source

1.修改和h5交互方法

王鹏鹏 il y a 2 ans
Parent
commit
fa62f50e59

+ 3 - 0
baselib/src/main/java/com/yingyangfly/baselib/utils/RxBusCodes.kt

@@ -5,6 +5,9 @@ object RxBusCodes {
     //关闭webview页面
     const val FINISHWEBVIEW = "finishWebview"
 
+    //播放语音
+    const val PLAYVOICE = "playVoice"
+
     //获取数据监控
     const val GetDataMonitor = 9001
 

+ 4 - 3
webview/src/main/java/com/yingyangfly/webview/AndroidToJs.kt

@@ -2,7 +2,6 @@ package com.yingyangfly.webview
 
 import android.app.Activity
 import android.webkit.JavascriptInterface
-import com.yingyangfly.baselib.ext.logi
 import com.yingyangfly.baselib.utils.LiveEventBusUtil
 import com.yingyangfly.baselib.utils.RxBusCodes
 
@@ -17,10 +16,12 @@ class AndroidToJs(val context: Activity) : Any() {
     @JavascriptInterface
     fun performAndroidMethod(msg: String?) {
         if(msg.isNullOrEmpty().not()) {
-            "js回调给原生的参数:$msg".logi()
-            if (msg?.equals("finishActivity") == true) {
+            if (msg?.contains("finishActivity") == true) {
                 LiveEventBusUtil.send(RxBusCodes.FINISHWEBVIEW, "finishWebview")
             }
+            if (msg?.contains("voice:") == true) {
+                LiveEventBusUtil.send(RxBusCodes.PLAYVOICE, msg)
+            }
         }
     }
 }

+ 20 - 0
webview/src/main/java/com/yingyangfly/webview/BridgeWebActivity.kt

@@ -16,6 +16,7 @@ import com.yingyangfly.baselib.router.RouterUrlCommon
 import com.yingyangfly.baselib.utils.LiveEventBusUtil
 import com.yingyangfly.baselib.utils.RxBusCodes
 import com.yingyangfly.baselib.utils.ViewTool
+import com.yingyangfly.baselib.voice.PlayVoice
 import com.yingyangfly.webview.databinding.ActivityBridgeWebBinding
 
 /**
@@ -27,12 +28,15 @@ class BridgeWebActivity : AppCompatActivity() {
     private lateinit var binding: ActivityBridgeWebBinding
     private lateinit var webSettings: WebSettings
     private var url: String = ""
+    private var playVoice: PlayVoice? = null
 
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         url = intent.getStringExtra("url") ?: ""
         binding = DataBindingUtil.setContentView(this, R.layout.activity_bridge_web)
         ViewTool.inflateLayoutPixels(this, binding.root, 1194, 834)
+        playVoice = PlayVoice()
+        playVoice?.setContext(this)
         initWebView()
         initView()
     }
@@ -82,14 +86,30 @@ class BridgeWebActivity : AppCompatActivity() {
     }
 
     private fun initView() {
+        //结束页面
         LiveEventBusUtil.observer<String>(this, RxBusCodes.FINISHWEBVIEW) {
             finish()
         }
+        //播放语音
+        LiveEventBusUtil.observer<String>(this, RxBusCodes.PLAYVOICE) {
+            if (it.isNullOrEmpty().not()) {
+                val msg = it.split("voice:")
+                if (msg.isNullOrEmpty().not()) {
+                    if (msg[1].isNullOrEmpty().not()) {
+                        playVoice?.speak(msg[1])
+                    }
+                }
+            }
+
+        }
     }
 
     override fun onDestroy() {
         destoryWebView()
         super.onDestroy()
+        if (playVoice != null) {
+            playVoice?.stop()
+        }
     }
 
     /**