Skip to content
切换导航面板
项目
群组
代码片段
帮助
闫龙晓
/
flutter-seaworld
当前项目
正在载入...
登录
切换导航面板
转到一个项目
项目
版本库
代码片段
设置
活动
图像
图表
创建新的问题
提交
问题看板
文件
提交
分支
标签
贡献者
图像
比较
图表
Commit 8b3aa23c
由
lujingkang
编写于
Apr 24, 2024
浏览文件
选项
浏览文件
下载
电子邮件补丁
差异文件
init
1 个父辈
64f0b939
显示空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
64 行增加
和
8 行删除
assets/fengmap/index.html
lib/pages/map/controller.dart
lib/pages/map/view.dart
lib/pages/map/widgets/map_webview.dart
assets/fengmap/index.html
查看文件 @
8b3aa23
...
...
@@ -1184,6 +1184,17 @@
}
</script>
<script
src=
"https://cdn.bootcss.com/vConsole/3.3.0/vconsole.min.js"
></script>
<script>
let
vConsole
=
new
window
.
VConsole
();
</script>
<script>
window
.
addEventListener
(
"flutterInAppWebViewPlatformReady"
,
function
(
event
)
{
console
.
log
(
event
);
});
</script>
</body>
</html>
\ No newline at end of file
lib/pages/map/controller.dart
查看文件 @
8b3aa23
import
'package:flutter_inappwebview/flutter_inappwebview.dart'
;
/*
* @Author: 卢靖康
* @Date: 2024-04-24 08:22:16
* @LastEditTime: 2024-04-24
08:56:12
* @LastEditTime: 2024-04-24
11:05:00
* @LastEditors: 卢靖康
*/
import
'dart:convert'
;
import
'package:get/get.dart'
;
import
'package:flutter/material.dart'
;
import
'package:flutter_inappwebview/flutter_inappwebview.dart'
;
class
MapController
extends
GetxController
{
MapController
();
GlobalKey
webViewKey
=
GlobalKey
();
InAppWebViewController
?
webViewController
;
final
InAppLocalhostServer
localhostServer
=
InAppLocalhostServer
();
_initData
()
{
update
([
"map"
]);
}
void
onTap
()
{}
setMapWebviewController
(
InAppWebViewController
controller
)
{
webViewController
=
controller
;
}
void
_setupPostMessageListeners
(
InAppWebViewController
controller
)
{}
void
onWebViewCreated
(
InAppWebViewController
controller
)
{
setMapWebviewController
(
controller
);
_setupPostMessageListeners
(
controller
);
}
void
onLoadStart
(
controller
,
url
)
{}
void
onLoadStop
(
controller
,
url
)
{}
@override
Future
<
void
>
onInit
()
async
{
...
...
@@ -34,3 +52,28 @@ class MapController extends GetxController {
// super.onClose();
// }
}
class
JSBridge
{
final
InAppWebViewController
_webViewController
;
JSBridge
(
this
.
_webViewController
);
Future
<
void
>
callHandler
(
String
handlerName
,
[
Map
<
String
,
dynamic
>
data
=
const
{}])
async
{
await
_webViewController
.
evaluateJavascript
(
source
:
"""
window.
$handlerName
(
${jsonEncode(data)}
);
"""
);
}
Future
<
void
>
addListener
(
String
eventName
,
callback
)
async
{
_webViewController
.
addJavaScriptHandler
(
handlerName:
eventName
,
callback:
(
result
)
{
callback
(
result
);
});
}
Future
<
void
>
removeListener
(
String
eventName
)
async
{
_webViewController
.
removeJavaScriptHandler
(
handlerName:
eventName
);
}
}
lib/pages/map/view.dart
查看文件 @
8b3aa23
/*
* @Author: 卢靖康
* @Date: 2024-04-24 08:22:16
* @LastEditTime: 2024-04-24
08:41:36
* @LastEditTime: 2024-04-24
11:05:13
* @LastEditors: 卢靖康
*/
import
'package:flutter/material.dart'
;
...
...
lib/pages/map/widgets/map_webview.dart
查看文件 @
8b3aa23
/*
* @Author: 卢靖康
* @Date: 2024-04-24 08:36:07
* @LastEditTime: 2024-04-24 0
8:45:54
* @LastEditTime: 2024-04-24 0
9:15:43
* @LastEditors: 卢靖康
*/
import
'package:flutter/material.dart'
;
...
...
@@ -18,11 +18,12 @@ class MapWebview extends GetView<MapController> {
Widget
build
(
BuildContext
context
)
{
return
GetBuilder
<
MapController
>(
builder:
(
_
)
{
return
InAppWebView
(
key:
controller
.
webViewKey
,
initialUrlRequest:
URLRequest
(
url:
Uri
.
parse
(
"http://localhost:8080/assets/fengmap/index.html"
)),
onWebViewCreated:
(
controller
)
{}
,
onLoadStart:
(
controller
,
url
)
{}
,
onLoadStop:
(
controller
,
url
)
{}
,
onWebViewCreated:
controller
.
onWebViewCreated
,
onLoadStart:
controller
.
onLoadStart
,
onLoadStop:
controller
.
onLoadStop
,
);
});
}
...
...
编写
预览
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
请先完成此消息的编辑!
取消
请
注册
或
登录
后发表评论