android记录一次webview与js的互动。

最近做到富文本交互这块,需要实时获取当前光标位置的文字属性,于是js就提供了

toolBar.getTextPropertyEvent()js方法。无奈 webview 的evaluateJavascript()方法有版本限制(min16)。只好另想它法,于是发现webview setWebChromeClient()里可以设置WebChromeClient类里有
@Override
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
  //  Gson gson = new Gson();
   // richTextBean = gson.fromJson(message, RichTextBean.class);
    result.cancel();
    return true;
}

@Override
public boolean onJsConfirm(WebView view, String url, String message, JsResult result) {
    return super.onJsConfirm(view, url, message, result);
}


@Override
public boolean onJsBeforeUnload(WebView view, String url, String message, JsResult result) {
    return super.onJsBeforeUnload(view, url, message, result);
}

@Override
public boolean onJsPrompt(WebView view, String url, String message, String defaultValue, JsPromptResult result) {
    return super.onJsPrompt(view, url, message, defaultValue, result);
}

 

这几个方法于是乎,就想到利用这几个方法回调来获取js的数据:

于是在需要获取状态的地方 使用js 的alert 方法来获取到数据,就成了如下写法。

web_edit_view.loadUrl("javascript:alert(toolBar.getTextPropertyEvent())");

你可能感兴趣的:(android)