現(xiàn)在H5嵌入 Android App開(kāi)發(fā)中已是一種潮流,經(jīng)常會(huì)遇到H5與java交互的場(chǎng)景,本文根據(jù) https://github.com/lzyzsd/JsBridge/ 封裝了可以同步Cookie,header ,帶有加載進(jìn)度,以及下拉刷新的JsBridge,并解決了部分問(wèn)題。
項(xiàng)目git 地址 https://github.com/tianwei0828/JsBridge
RefreshProgressWebView refreshProgressWebView = (RefreshProgressWebView) findViewById(R.id.rpwv);
// 注冊(cè) java 調(diào)用 js 中名為 jsHandlerName 的 方法
refreshProgressWebView.registerJsHandler("jsHandlerName", new JsHandler() {
@Override public void onHandler(String handlerName, String responseData, CallBackFunction function) {
//js返回值
} });
// 注冊(cè) js 調(diào)用 java 中名為 javaHandlerName 的方法,并且在調(diào)用的時(shí)候,java將sendToJsData 給到j(luò)s
refreshProgressWebView.registerJavaHandler("javaHandlerName", "sendToJsData", new JavaHandler() {
@Override public void onHandler(String handlerName, String jsResponseData) {
//js 返回值
} });
//添加cookie
Map<String, String> cookies = new HashMap<>();
cookies.put("key", "value");
refreshProgressWebView.setCookies("url", cookies);
//開(kāi)啟下拉刷新功能,默認(rèn)開(kāi)啟
refreshProgressWebView.setEnabled(true);
//添加header
refreshProgressWebView.setHeader("key","value");
//load url
refreshProgressWebView.load("https://www.baidu.com");