混合开发(Hybrid方向),是使用webview来开发WebAPP的。
入门
参考:(可以参考API Guide,但下面这篇博客更清晰)
Android:最全面的 Webview 详解
经验:
1. 如果不实用系统自带的浏览器,要先设置webView.setWebViewClient(new WebViewClient()),然后再loadurl,参考博客里面先loadurl后设置的方式不正确,虽然也实现了效果,但那是因为在复写的WebViewClient又加载了一次的原因。
2. 为什么不在xml中定义 Webview?参考:WebView 避免内存泄露的方法。
交互
参考:
Android:你要的WebView与 JS 交互方式 都在这里了
经验:
1. 相互交互时候,调用对方函数,需要传参数,直接用字符串拼接的方式,将参数传入。eg:
//调用js函数,将扫描到的数据塞入网页对应位置
webview.loadUrl("javascript:setOrderNum('" + scanResult +"')");
//js调用Android原生函数,由于对象映射,所以调用test对象等于调用Android映射的对象
test.hello("js调用了android中的hello方法");
- js调用android,可以直接获取到android函数的返回值;android调用js,用loadurl方式获取不到返回值,用evaluateJavascript可以,但evaluateJavascript在4.4以上才生效。
Cookie
1. Cookie读写
参考:
【WebView的cookie机制 】轻松搞定WebView cookie同步问题
读取举例:
CookieManager.getInstance().getCookie("https://passport.bilibili.com/login");
URLConnection请求加cookie:
connection.setRequestProperty("Cookie", "Cookie:" + getCookie());
延伸:
利用读写机制,可以写大多数网站的安卓辅助,包括抢购、抢票、直播平台的脱机挂机辅助.etc
2. PC浏览器上管理Cookie
参考:
浏览器怎么查看浏览过的本地缓存Cookie和网站数据?
360浏览器主要查看步骤:
“高级设置”——“网页内容”——“内容设置”——“所有Cookie和网站数据”。
预加载
参考:手把手教你构建 Android WebView 的缓存机制 & 资源预加载方案