2017-04-19 105 views
0

印刷プレビューを表示するためにwebviewを使用していますが、ウェブビューが表示されないことがあるという問題があります。それが起こると、onPageFinished()コールバックは呼び出されません。私が奇妙に思うのは、それはほとんどの時に働くが、時にはそうではないことである。onPageFinishedがAndroid WebViewと呼ばれないことがあります

WebView webView = new WebView(context); 

    webView.loadData(html, 
      "text/html", "UTF-8"); 

    webView.setWebViewClient(new WebViewClient() { 
     @RequiresApi(api = Build.VERSION_CODES.KITKAT) 
     @Override 
     public void onPageFinished(WebView view, String url) { 
      super.onPageFinished(view,url); 
      Log.d(TAG, "onPageFinished: "); 

      PrintDocumentAdapter printDocumentAdapter = new PrintDocumentAdapterWrapper(view.createPrintDocumentAdapter()); 
      printManager = (PrintManager) context.getSystemService(PRINT_SERVICE); 
      printManager.print(webViewName, printDocumentAdapter, printAttributes); 

     } 

    }); 

答えて

1

私はwebView.loadDataWithBaseURL(null,html, "text/html", "UTF-8",null);代わりのwebView.loadData(html, "text/html", "UTF-8");を使用してこれを解決しました。
私が読んだところでは、2つの方法は完全に異なる実装を持っています

関連する問題