V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
shenxiyang
V2EX  ›  Android

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

  •  
  •   shenxiyang · 2017-11-28 17:39:25 +08:00 · 8742 次点击
    这是一个创建于 2577 天前的主题,其中的信息可能已经有所发展或是发生改变。
    政府项目,必须带公章固定的页面
    具体需求就是在 Android 原生界面读取值,接着填充到 app 里 html 页面,然后截图再转 pdf 打印
    卡在填充 html 数据这里
    3 条回复    2017-11-29 09:18:14 +08:00
    r00tt
        1
    r00tt  
       2017-11-28 17:49:07 +08:00
    方法比较多,说几个可行的吧
    1. java 与 js 互相调用,通过 java 塞入数据
    2. 直接在 Html 里面插入占位符,比如用户名的地方插入__user_name__ (只是举个例子),然后直接用真实数据来 replace
    janus77
        2
    janus77  
       2017-11-28 18:55:38 +08:00
    如果 html 是静态的 有模板的,那很好办啊,直接生成填好内容的 html 字符串,再转到 webview 上面显示并打印
    chenyu8674
        3
    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);
    }
    }
    };

    暂时没发现问题,欢迎指教
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5158 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 01:13 · PVG 09:13 · LAX 17:13 · JFK 20:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.