Как открыть веб-файл PDF в браузерном киоске на основе Xwalkview с явным приложением с белым списком URL? - PullRequest
0 голосов
/ 18 ноября 2018

Я пытаюсь открыть веб-файлы PDF в Xwalkview с помощью другого приложения, но файл будет только что загружен.

Вариант использования - это WebApp для киосков-устройств для отображения содержимого внутренней сети (HTML & PDF) с URL-адресом белого цвета.-list.

Спасибо заранее.

Вот мой код:

public class MainActivity extends Activity {
XWalkView mXwalkView;



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mXwalkView = (XWalkView) findViewById(R.id.mybrowser);
    mXwalkView.setResourceClient(new MyResourceClient(mXwalkView){

        @Override
        public XWalkWebResourceResponse shouldInterceptLoadRequest(
                XWalkView view, XWalkWebResourceRequest request) {
            if(request.getUrl().getHost().endsWith("example.company.com")) return null;
            if(request.getUrl().getHost().startsWith("data://")) return null;
            if(request.getUrl().getHost().startsWith("javascript")) return null;
            if(request.getUrl().getHost().endsWith(".pdf"))


                {Intent pdfintent = new Intent(Intent.ACTION_VIEW);
                pdfintent.setComponent(new ComponentName("org.ninthfloor.copperpdf", "co.copperhead.pdfviewer.PdfViewer"));
                startActivity(pdfintent);}

            else;
            {
                ByteArrayInputStream bis =
                        new ByteArrayInputStream(
                                "Website not allowed!".getBytes());
                return createXWalkWebResourceResponse("text/plain", "UTF-8", bis);
            }
        }


    });
    mXwalkView.setUIClient(new MyUIClient(mXwalkView));
    mXwalkView.load("http://example.company.com", null);
    mXwalkView.setUserAgentString("Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML,"
            + " like Gecko) Chrome/41.0.2228.0 Safari/537.36");
    mXwalkView.getSettings().setUseWideViewPort(false);
    mXwalkView.getSettings().setCacheMode(2);
    mXwalkView.setInitialScale(100);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
    SystemClock.sleep(5000);



}
...