请问 Android 中怎样填充 html 数据?

2017-11-28 17:39:25 +08:00
 shenxiyang
政府项目,必须带公章固定的页面
具体需求就是在 Android 原生界面读取值,接着填充到 app 里 html 页面,然后截图再转 pdf 打印
卡在填充 html 数据这里
8976 次点击
所在节点    Android
3 条回复
r00tt
2017-11-28 17:49:07 +08:00
方法比较多,说几个可行的吧
1. java 与 js 互相调用,通过 java 塞入数据
2. 直接在 Html 里面插入占位符,比如用户名的地方插入__user_name__ (只是举个例子),然后直接用真实数据来 replace
janus77
2017-11-28 18:55:38 +08:00
如果 html 是静态的 有模板的,那很好办啊,直接生成填好内容的 html 字符串,再转到 webview 上面显示并打印
chenyu8674
2017-11-29 09:18:14 +08:00
/**
* Android 端调用 WebView 中的 js 方法
*
* @param function 方法名称
* @param params 参数数组
*/
public static void letJavaScriptDo(final String function, final String... params) {
String[] jsParams = new String[params.length + 1];
jsParams[0] = function;
for (int i = 1; i < jsParams.length; i++) {
jsParams[i] = params[i - 1];
}
Message msg = new Message();
msg.obj = jsParams;
runJsHandler.sendMessage(msg);
}

private static Handler runJsHandler = new Handler() {
public void handleMessage(Message msg) {
String[] jsParams = (String[]) msg.obj;
String function = jsParams[0];
String jsUrl = "javascript:" + function + "(";
for (int i = 1; i < jsParams.length; i++) {
if (i != 1) {
jsUrl += ",";
}
jsUrl += "'" + jsParams[i].replace("'", "\\\'") + "'";
}
jsUrl += ");";
if (mWebView != null) {
mWebView.loadUrl(jsUrl);
}
}
};

暂时没发现问题,欢迎指教

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/410255

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX