## 3.0.3 - **Android定位交互demo**
**Android 与 H5 交互**
**1,初始化webview 设置UA(User-Agent)**
*代码如下:*
开启js交互添加设置//支持js
String ua = webView.getSettings().getUserAgentString();
webView.getSettings().setUserAgentString(ua + ";isApp");
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
webView.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
}
webView.setLayerType(View.LAYER_TYPE_HARDWARE, null);//开启硬件加速
webView.getSettings().setSupportZoom(false);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
webView.getSettings().setBlockNetworkImage(false);//解决图片不显示
webView.getSettings().setDomStorageEnabled(true);
webView.getSettings().setAppCacheMaxSize(1024 * 1024 * 8);
webView.getSettings().setAppCacheMaxSize(Long.MAX_VALUE);
String appCachePath = getApplicationContext().getCacheDir().getAbsolutePath();
webView.getSettings().setAppCachePath(appCachePath);
webView.getSettings().setAppCachePath(this.getDir("appcache", 0).getPath());
webView.getSettings().setDatabasePath(this.getDir("databases", 0).getPath());
webView.getSettings().setGeolocationDatabasePath(this.getDir("geolocation", 0).getPath());
webView.getSettings().setGeolocationEnabled(true);
webView.getSettings().setDatabaseEnabled(true);
webView.getSettings().setAppCacheEnabled(true);
webView.getSettings().setAllowFileAccess(true);
webView.getSettings().setSupportZoom(true);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setSupportMultipleWindows(false);
webView.getSettings().setJavaScriptEnabled(true);
**2,注册js方法,方法名为 $api**
![](https://img.kancloud.cn/8e/a4/8ea454a0b4b8e7eb8201ad4bc52f48dd_618x31.png)
3,**添加js回调方法,获取定位,并执行js方法,把定位信息回传给H5**(**红框内需要替换为自己的位置信息**)
![](https://img.kancloud.cn/1f/1b/1f1b623aca0f2b262f5a5e880dd8960b_553x197.png)
备注:如H5需要添加新的回调方法,按照以上方法在JsEventInterface类添加新的方法即可。