Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
clx_map_navigation
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
openSourceLibrary
clx_map_navigation
Commits
e41ba7d7
提交
e41ba7d7
authored
12月 14, 2022
作者:
shixiaochen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
1、Android导航
上级
ae2907f1
全部展开
显示空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
107 行增加
和
20 行删除
+107
-20
build.gradle
android/build.gradle
+1
-0
ClxMapNavigationPlugin.kt
...x/navigation/clx_map_navigation/ClxMapNavigationPlugin.kt
+49
-20
Constants.kt
...kotlin/com/clx/navigation/clx_map_navigation/Constants.kt
+8
-0
LifecycleProvider.kt
...om/clx/navigation/clx_map_navigation/LifecycleProvider.kt
+14
-0
NavigationPlatformView.kt
...x/navigation/clx_map_navigation/NavigationPlatformView.kt
+0
-0
NavigationPlatformViewFactory.kt
...ation/clx_map_navigation/NavigationPlatformViewFactory.kt
+35
-0
没有找到文件。
android/build.gradle
浏览文件 @
e41ba7d7
...
@@ -47,4 +47,5 @@ android {
...
@@ -47,4 +47,5 @@ android {
dependencies
{
dependencies
{
implementation
"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation
"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
compileOnly
'com.amap.api:navi-3dmap:9.5.0_3dmap9.5.0'
}
}
android/src/main/kotlin/com/clx/navigation/clx_map_navigation/ClxMapNavigationPlugin.kt
浏览文件 @
e41ba7d7
package
com.clx.navigation.clx_map_navigation
package
com.clx.navigation.clx_map_navigation
import
android.util.Log
import
androidx.annotation.NonNull
import
androidx.annotation.NonNull
import
androidx.lifecycle.Lifecycle
import
androidx.lifecycle.LifecycleOwner
import
com.amap.api.navi.NaviSetting
import
io.flutter.embedding.engine.plugins.FlutterPlugin
import
io.flutter.embedding.engine.plugins.FlutterPlugin
import
io.flutter.embedding.engine.plugins.FlutterPlugin.FlutterPluginBinding
import
io.flutter.embedding.engine.plugins.activity.ActivityAware
import
io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding
import
io.flutter.embedding.engine.plugins.lifecycle.HiddenLifecycleReference
import
io.flutter.plugin.common.MethodCall
import
io.flutter.plugin.common.MethodCall
import
io.flutter.plugin.common.MethodChannel
import
io.flutter.plugin.common.MethodChannel
import
io.flutter.plugin.common.
MethodChannel.MethodCallHandler
import
io.flutter.plugin.common.
PluginRegistry
import
io.flutter.plugin.common.MethodChannel.Result
/** ClxMapNavigationPlugin */
/** ClxMapNavigationPlugin */
class
ClxMapNavigationPlugin
:
FlutterPlugin
,
MethodCallHandler
{
class
ClxMapNavigationPlugin
:
FlutterPlugin
,
ActivityAware
{
/// The MethodChannel that will the communication between Flutter and native Android
///
private
var
mLifecycle
:
Lifecycle
?
=
null
/// This local reference serves to register the plugin with the Flutter Engine and unregister it
/// when the Flutter Engine is detached from the Activity
override
fun
onAttachedToEngine
(
@NonNull
binding
:
FlutterPluginBinding
)
{
private
lateinit
var
channel
:
MethodChannel
Log
.
d
(
Constants
.
TAG
,
"onAttachedToEngine: "
)
override
fun
onAttachedToEngine
(
@NonNull
flutterPluginBinding
:
FlutterPlugin
.
FlutterPluginBinding
)
{
binding
.
platformViewRegistry
channel
=
MethodChannel
(
flutterPluginBinding
.
binaryMessenger
,
"clx_map_navigation"
)
.
registerViewFactory
(
channel
.
setMethodCallHandler
(
this
)
Constants
.
VIEW_TYPE
,
NavigationPlatformViewFactory
(
binding
.
binaryMessenger
,
object
:
LifecycleProvider
{
override
val
lifecycle
:
Lifecycle
?
get
()
=
mLifecycle
}
)
)
}
}
override
fun
onMethodCall
(
@NonNull
call
:
MethodCall
,
@NonNull
result
:
Result
)
{
override
fun
onDetachedFromEngine
(
@NonNull
binding
:
FlutterPluginBinding
)
{
if
(
call
.
method
==
"getPlatformVersion"
)
{
Log
.
d
(
Constants
.
TAG
,
"onDetachedFromEngine: "
)
result
.
success
(
"Android ${android.os.Build.VERSION.RELEASE}"
)
}
else
{
result
.
notImplemented
()
}
}
/**=============================ActivityAware===============================*/
override
fun
onAttachedToActivity
(
binding
:
ActivityPluginBinding
)
{
Log
.
d
(
Constants
.
TAG
,
"onAttachedToActivity: "
)
mLifecycle
=
(
binding
.
lifecycle
as
HiddenLifecycleReference
).
lifecycle
}
override
fun
onDetachedFromActivity
()
{
Log
.
d
(
Constants
.
TAG
,
"onDetachedFromActivity: "
)
mLifecycle
=
null
}
}
override
fun
onDetachedFromEngine
(
@NonNull
binding
:
FlutterPlugin
.
FlutterPluginBinding
)
{
override
fun
onReattachedToActivityForConfigChanges
(
binding
:
ActivityPluginBinding
)
{
channel
.
setMethodCallHandler
(
null
)
Log
.
d
(
Constants
.
TAG
,
"onReattachedToActivityForConfigChanges: "
)
onAttachedToActivity
(
binding
)
}
}
override
fun
onDetachedFromActivityForConfigChanges
()
{
Log
.
d
(
Constants
.
TAG
,
"onDetachedFromActivityForConfigChanges: "
)
onDetachedFromActivity
()
}
}
}
android/src/main/kotlin/com/clx/navigation/clx_map_navigation/Constants.kt
0 → 100644
浏览文件 @
e41ba7d7
package
com.clx.navigation.clx_map_navigation
object
Constants
{
const
val
TAG
=
"ClxMapNavigationPlugin"
const
val
VIEW_TYPE
=
"clx_map_navigation"
}
\ No newline at end of file
android/src/main/kotlin/com/clx/navigation/clx_map_navigation/LifecycleProvider.kt
0 → 100644
浏览文件 @
e41ba7d7
package
com.clx.navigation.clx_map_navigation
import
androidx.lifecycle.Lifecycle
/**
* @author whm
* @date 2020/11/8 6:17 PM
* @mail hongming.whm@alibaba-inc.com
* @since
*/
interface
LifecycleProvider
{
val
lifecycle
:
Lifecycle
?
}
\ No newline at end of file
android/src/main/kotlin/com/clx/navigation/clx_map_navigation/NavigationPlatformView.kt
0 → 100644
浏览文件 @
e41ba7d7
差异被折叠。
点击展开。
android/src/main/kotlin/com/clx/navigation/clx_map_navigation/NavigationPlatformViewFactory.kt
0 → 100644
浏览文件 @
e41ba7d7
package
com.clx.navigation.clx_map_navigation
import
android.content.Context
import
android.util.Log
import
io.flutter.plugin.common.BinaryMessenger
import
com.clx.navigation.clx_map_navigation.LifecycleProvider
import
io.flutter.plugin.platform.PlatformViewFactory
import
io.flutter.plugin.common.StandardMessageCodec
import
io.flutter.plugin.platform.PlatformView
import
com.clx.navigation.clx_map_navigation.NavigationPlatformViewFactory
import
com.clx.navigation.clx_map_navigation.NavigationPlatformView
/**
* @author whm
* @date 2020/10/27 4:08 PM
* @mail hongming.whm@alibaba-inc.com
* @since
*/
internal
class
NavigationPlatformViewFactory
(
private
val
messenger
:
BinaryMessenger
,
private
val
lifecycleProvider
:
LifecycleProvider
)
:
PlatformViewFactory
(
StandardMessageCodec
.
INSTANCE
)
{
override
fun
create
(
context
:
Context
,
viewId
:
Int
,
args
:
Any
?):
PlatformView
{
Log
.
d
(
Constants
.
TAG
,
"create: "
)
return
NavigationPlatformView
(
context
,
messenger
,
viewId
,
args
,
lifecycleProvider
)
}
}
\ No newline at end of file
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论