需求场景
对接h5页面,原生获取定位信息,h5调用原生方法获取
问题
1.定位信息是异步获得
2.原生方法不能加suspend修饰。
解决
1.使用suspendCoroutine 关键字,异步获取数据,详情见https://www.csdn.net/tags/MtTaEgysNjk4MDA4LWJsb2cO0O0O.html
2. runBlocking{}可以返回方法体内的参数,且阻塞协程,需要等到方法体内执行完毕才向下执行。
GlobalScope.launch { }不能返回方法体内的参数,且不阻塞协程
ps:出现一个问题,使用runBlocking后内部定位回调方法不执行,疑似在javaBarge线程中不允许阻塞?
解决方法,使用Dispatchers切换线程后可以正常使用。