shenxiyang
V2EX  ›  Android

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

  •  
  •   shenxiyang · Nov 28, 2017 · 12594 views
    This topic created in 3095 days ago, the information mentioned may be changed or developed.
    政府项目,必须带公章固定的页面
    具体需求就是在 Android 原生界面读取值,接着填充到 app 里 html 页面,然后截图再转 pdf 打印
    卡在填充 html 数据这里
    3 replies    2017-11-29 09:18:14 +08:00
    r00tt
        1
    r00tt  
       Nov 28, 2017
    方法比较多,说几个可行的吧
    1. java 与 js 互相调用,通过 java 塞入数据
    2. 直接在 Html 里面插入占位符,比如用户名的地方插入__user_name__ (只是举个例子),然后直接用真实数据来 replace
    rb6221
        2
    rb6221  
       Nov 28, 2017
    如果 html 是静态的 有模板的,那很好办啊,直接生成填好内容的 html 字符串,再转到 webview 上面显示并打印
    chenyu8674
        3
    chenyu8674  
       Nov 29, 2017
    /**
    * 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);
    }
    }
    };

    暂时没发现问题,欢迎指教
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1625 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 16:31 · PVG 00:31 · LAX 09:31 · JFK 12:31
    ♥ Do have faith in what you're doing.