android Js交互进阶版
来源:互联网 发布:良品铺子樱花果冻淘宝 编辑:程序博客网 时间:2024/05/17 08:55
混合开发越来越常见,最近做了一个大批量的混合开发,发现简单的互调方法早已满足不了需求,摸爬滚打的踩坑过后,记录一下几个问题,顺便帮助尚处水深火热的同行排忧解惑。
1.数据传递
①. 如果是想传的只有一个值,那么比较简单,直接 webview.loadUrl(“javascript:login(“+user.getName+”)”);
②.想要在.jsp中使用很多安卓的数据,或者一个实体的话,可以使用 @JavascriptInterface标签和 webview.addJavascriptInterface(user, “user”); 直接让js使用一个实体
@JavascriptInterface:在一个class文件的方法上表上这个标注,表示这个方法在js中是可以直接通过对象调用的;
webview.addJavascriptInterface(user, “user”); :将安卓对象传递个js;
2.javascript:history.go(-1)无效
开始时随大流在
webview.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
webview.load(url);
return true;
}
});
加入了 webview.load(url);防止打开自带浏览器加载链接,但是有时候你会发现js里面的回退方法竟然在手机上不管用了,解决是删掉load(url) 再return false ;
3.alert()在手机上不显示
调试jsp页面常用alert()辨别是否执行,但是手机端不会显示,原因是webview 不支持,需要内嵌浏览器内核,好在谷歌的浏览器内核可以直接用: webview.setWebChromeClient(new WebChromeClient());
4.支持使用localStorage
localStorage:进阶的session
webview设置支持
webSettings.setDomStorageEnabled(true);
webSettings.setAppCacheMaxSize(1024 * 1024 * 6);
String appCachePath = getApplicationContext().getCacheDir().getAbsolutePath();
webSettings.setAppCachePath(appCachePath);
webSettings.setAllowFileAccess(true);
webSettings.setAppCacheEnabled(true);
安卓小白,多包涵;
- android Js交互进阶版
- Android进阶_WebView与JS进行交互
- [Android进阶]---WebView与js交互
- android WebView js 交互
- android 与 js 交互
- Android与JS交互
- Android 与JS交互
- Android和JS交互
- android与js交互
- android与JS交互
- android与js交互
- android webview js交互
- android、webview、js交互
- Android和Js交互
- Android和JS交互
- Android JS交互
- android和js交互
- Android与js交互
- Collections实现Java容器复制的三种方法
- 【笨鸟先飞】Java重新学习日记11---创建一个类
- The project: Test which is referenced by the classpath, does not exist.
- Maven 安装本地jar包到仓库中
- python——数据操作
- android Js交互进阶版
- GPU人脸识别构建智慧城市_你理想中的智能城市长啥样?
- 为什么Java成员类里面要写set、get等方法而不是直接public?
- mysql 表对象缓存
- 今天开通
- PAT 甲级 1042. Shuffling Machine (20)
- win10 uwp 获得Slider拖动结束的值
- c++转型之路---java
- 再次认识thinkphp的I方法