我是这样写的代码:
1.首先调用异步方法监听HTML是否完成,然后再运行HTML文件
_focusedPrefab = mainWebViewPrefab;
mainWebViewPrefab.Initialized += (s, e) => {
var webViewWithPopups = mainWebViewPrefab.WebView as IWithPopups;
//运行脚本的异步方法
runJavaScriptFun();
mainWebViewPrefab.WebView.LoadHtml(CONTROLS_HTML);
2.这是监听HTML和执行Script异步方法中的内容
async void runJavaScriptFun()
{
await mainWebViewPrefab.WaitUntilInitialized();
mainWebViewPrefab.WebView.LoadProgressChanged += async (sender, eventArgs) => {
if (eventArgs.Type == ProgressChangeType.Finished)
{
var headerText = await mainWebViewPrefab.WebView.ExecuteJavaScript(runJavaScript);
}
};
}
3.写了个String变量用来保存HTML文件内容,其中双引号改成单引号,在外部文件中可以直接使用的
const string CONTROLS_HTML = @"
<!DOCTYPE html>
<html xmlns='http://www.w3.org/1999/xhtml' >
<head>
<meta http-equiv='Content-Type' content='text/html; charset=utf-8' />
<title>百度地图API自定义地图</title>
<!--引用百度地图API-->
<style type = 'text/css' >
body, html,#map {width: 100%;height: 100%;overflow: hidden;margin:0;font-family:'微软雅黑';
}
</style>
<script type = 'text/javascript' src='http://api.map.baidu.com/api?v=2.0&ak=8EuL8Of3fyXWnPV5X2Rj8UMQ6RjE1NcZ' ></script>
</head>
<body>
<div id = 'map' ></ div >
</body>
</html>
";
4.Html中 脚本的内容
const string runJavaScript = @" <script type='text/javascript' >
// 百度地图API功能
var map = new BMap.Map('map'); // 创建Map实例
map.centerAndZoom(new BMap.Point(116.404, 39.915), 11); // 初始化地图,设置中心点坐标和地图级别
//添加地图类型控件
map.addControl(new BMap.MapTypeControl({
mapTypes:[
BMAP_NORMAL_MAP,
BMAP_HYBRID_MAP
]
}));
map.setCurrentCity('北京'); // 设置地图显示的城市 此项是必须设置的
map.enableScrollWheelZoom(true); //开启鼠标滚轮缩放
</script>";
}