Я пытаюсь найти способ напечатать тело внешнего URL.Я уже могу правильно напечатать название - PullRequest
0 голосов
/ 25 февраля 2019

Я извлек большинство частей из своего исходного кода, чтобы дать вам представление о том, как это работает до сих пор.Мне удалось получить его с заголовком веб-просмотра, но я также хотел бы, чтобы он отображал больше содержимого HTML или исходного кода, поскольку я пытаюсь распечатать на маленьком термопринтере, чтобы позволить мне распечатать квитанцию.

   webview.setWebViewClient(new WebViewClient());
        webview.getSettings().setJavaScriptEnabled(true);
        webview.getSettings().setDomStorageEnabled(true);
        webview.setOverScrollMode(WebView.OVER_SCROLL_NEVER);
        webview.loadUrl("http://www.google.co.uk");

        --------------------------------------------------

          btnPrint.setOnClickListener(new View.OnClickListener() {
                @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
                @Override
                public void onClick(View v) {
                    try {
                        printData();
                    } catch (Exception ex) {
                        ex.printStackTrace();
                    }
                }
            });

       --------------------------------------------------

               @RequiresApi(api = Build.VERSION_CODES.O_MR1)
        void printData() throws IOException {

            try {
                String msg = webview.getTitle();
                msg+="\n";
                outputStream.write(msg.getBytes());
                lblPrinterName.setText("Printing Text...");

            } catch (Exception ex){
                ex.printStackTrace();
            }
        }

1 Ответ

0 голосов
/ 25 февраля 2019

Вам необходимо расширить WebViewClient и переопределить shouldOverrideUrlLoading.создать класс:

    private class MyWebClient extends WebViewClient{

    public boolean  shouldOverrideUrlLoading  (WebView  view, String  urlConection){
        URL aURL = new URL(url); 
        URLConnection conn = aURL.openConnection(); 
        conn.connect(); 
        InputStream is = conn.getInputStream();
        String htmlContent = readInputStream(is);
        printHtmlContent(htmlContent);
    }

    public String readInputStream(InputStream inputStream){
       StringBuffer string = new StringBuffer();
       BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
       String line;
       try {
          while ((line = reader.readLine()) != null) {
             string.append(linea + "\n");
          }
       } catch (IOException e) {}
       return string.toString();
    }
}
    //

    webview.setWebViewClient(new MyWebViewClient());


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...