MainActivity.kt
1.84 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package com.naji.one_key
import androidx.annotation.NonNull;
import io.flutter.embedding.android.FlutterActivity
import io.flutter.embedding.engine.FlutterEngine
import io.flutter.plugins.GeneratedPluginRegistrant
import android.os.Bundle
import android.util.Log
import io.flutter.plugin.common.MethodChannel
import io.flutter.plugin.common.MethodCall
class MainActivity: FlutterActivity() {
private var TAG = "| com.naji.book |"
// 通道名称
private var CHANNEL = "com.naji/book"
// native端的Intent数据
private var intentMap = mutableMapOf<String, String>()
override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {
GeneratedPluginRegistrant.registerWith(flutterEngine);
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// flutter版本更新后使用 getFlutterEngine().getDartExecutor().getBinaryMessenger()代替 getFlutterView()
val channel = MethodChannel(getFlutterEngine()?.getDartExecutor()?.getBinaryMessenger(), CHANNEL)
// 这里要获取启动时的intent
val uri = intent.data
val paramsMap = mutableMapOf<String, String>()
if (uri != null) {
val set = uri.queryParameterNames
for (name in set) {
val value = uri.getQueryParameter(name)
paramsMap[name.toString()] = value.toString()
}
}
intentMap = paramsMap
channel.setMethodCallHandler { call, result ->
Log.i(TAG,intentMap.toString());
when (call.method) {
"getIntent" -> get_intent(call, result)
}
}
}
// 获取intent
private fun get_intent(call: MethodCall, result: MethodChannel.Result) {
Log.i(TAG, "调用${call.method}方法")
result.success(intentMap)
}
}