首页 > 解决方案 > Android Web 视图未加载此静态 Html

问题描述

我有一个 html 字符串,可以在浏览器中正常加载,但是当尝试在 andriod 网络视图中加载时,它显示空白屏幕而没有任何错误。我不想通过文件 url 加载,因为我希望这个字符串中的参数是动态的。

public class MainActivity extends Activity {


    private ProgressDialog  prg;
    private  WebView webView;
    private  int counter=0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {

        String htmlString = "<!DOCTYPE html>\n" +
                "<html>\n" +
                "\n" +
                "<head>\n" +
                "  <meta charset=\"utf-8\">\n" +
                "  <title></title>\n" +
                "  <meta name=\"author\" content=\"\">\n" +
                "  <meta name=\"description\" content=\"\">\n" +
                "  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n" +
                "\n" +
                "  \n" +
                "</head>\n" +
                "\n" +
                "<body>\n" +
                "\n Hello" +
                "<my-component source-url=\"https://fcc3ddae59ed.us-west-2.playback.live-video.net/api/video/v1/us-west-2.893648527354.channel.DmumNckWFTqz.m3u8\"/>\n" +
                "\n" +
                "<script src='https://unpkg.com/rahulrsingh09-stenciltest2@0.0.3/dist/test/test.js'></script>\n" +
                "</body>\n" +
                "\n" +
                "</html>";
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);






        webView =(WebView)findViewById(R.id.webView);
        webView.getSettings().setJavaScriptEnabled(true);
        webView.getSettings().setAppCacheEnabled(true);
        webView.getSettings().setAppCachePath(getApplicationContext().getCacheDir().getPath());
        webView.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT);
        webView.setWebViewClient(new WebViewClient());
        webView.loadData(htmlString, "text/html; charset=utf-8", "UTF-8");;




    }


    public void getWebview(String myurl)
    {





        webView.setWebViewClient(new WebViewClient()
        {


            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {


                prg.show();



                return super.shouldOverrideUrlLoading(view, url);
            }

            @Override
            public void onPageFinished(WebView view, String url) {

                prg.dismiss();

                view.getSettings().setJavaScriptEnabled(true);




                super.onPageFinished(view, url);
            }


            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {



                super.onPageStarted(view, url, favicon);
            }





        });
        prg = ProgressDialog.show(MainActivity.this, "Blog App", "İçerik Yükleniyor", true);
        webView.loadUrl(myurl);



    }



    @Override
    protected void onResume() {
        super.onResume();


    }


    @Override
    public void onBackPressed() {


        if (webView.canGoBack()) {
            webView.goBack();
        } else {
            super.onBackPressed();
        }

    }


}

这里有什么问题可以向我指出吗?

编辑

在此处输入图像描述

标签: android

解决方案


尝试以下 -> 未提供基本 URL 的问题。

public class MainActivity2 extends Activity {


private ProgressDialog prg;
private WebView webView;
private int counter = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {

    String htmlString = "<!DOCTYPE html>\n" +
            "<html>\n" +
            "\n" +
            "<head>\n" +
            "  <meta charset=\"utf-8\">\n" +
            "  <title></title>\n" +
            "  <meta name=\"author\" content=\"\">\n" +
            "  <meta name=\"description\" content=\"\">\n" +
            "  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n" +
            "\n" +
            "  \n" +
            "</head>\n" +
            "\n" +
            "<body>\n" +
            "\n Hello" +
            "<my-component source-url=\"https://fcc3ddae59ed.us-west-2.playback.live-video.net/api/video/v1/us-west-2.893648527354.channel.DmumNckWFTqz.m3u8\"/>\n" +
            "\n" +
            "<script src='https://unpkg.com/rahulrsingh09-stenciltest2@0.0.3/dist/test/test.js'></script>\n" +
            "</body>\n" +
            "\n" +
            "</html>";
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main_web);

    webView = (WebView) findViewById(R.id.webView);

    WebSettings settings = webView.getSettings();

    settings.setBuiltInZoomControls(true);
    settings.setDomStorageEnabled(true);
    settings.setJavaScriptEnabled(true);
    settings.setAppCacheEnabled(true);
    settings.setAppCachePath(getApplicationContext().getCacheDir().getPath());
    settings.setCacheMode(WebSettings.LOAD_DEFAULT);
    webView.setWebViewClient(new WebViewClient());
    webView.loadDataWithBaseURL("https://fcc3ddae59ed.us-west-2.playback.live-video.net", htmlString, "text/html", "UTF-8", null);
    
}

public void getWebview(String myurl) {

    webView.setWebViewClient(new WebViewClient() {

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {

            prg.show();

            return super.shouldOverrideUrlLoading(view, url);
        }

        @Override
        public void onPageFinished(WebView view, String url) {

            prg.dismiss();

            view.getSettings().setJavaScriptEnabled(true);

            super.onPageFinished(view, url);
        }

        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            super.onPageStarted(view, url, favicon);
        }

    });
    prg = ProgressDialog.show(MainActivity2.this, "Blog App", "İçerik Yükleniyor", true);
    webView.loadUrl(myurl);

}

@Override
protected void onResume() {
    super.onResume();

}

@Override
public void onBackPressed() {


    if (webView.canGoBack()) {
        webView.goBack();
    } else {
        super.onBackPressed();
    }

}

}

检查它的工作


推荐阅读