使用嵌入式 HTML 代码加载 WebView - Android

Posted

技术标签:

【中文标题】使用嵌入式 HTML 代码加载 WebView - Android【英文标题】:Load WebView with Embedded HTML code - Android 【发布时间】:2017-09-27 08:08:07 【问题描述】:

下面我附上了webview要执行的代码。

注意:应该启用 javascript

任何人都可以帮助我在 WEBVIEW 中运行此 html 字符串

<!DOCTYPE html>
<html>
<body>
<!-- Markup for HTML (Factors in Placement and Enrollment of Primary 
Care Patientsin YMCA&#39;s Diabetes Prevention Program, Bronx, New 
York,2010-2015) --><div class='rid_08184eef_309335' 
data-apiroot='//tools.cdc.gov/api' data-mediatype='html' 
data-mediaid='309335' data-stripscripts='true' data-stripanchors='false' 
data-stripimages='false' data-stripcomments='true' 
data-stripstyles='true' data-cssclasses='syndicate' data-ids='' 
data-xpath='' data-oe='utf-8' data-of='xhtml' data-ns='cdc' 
data-postprocess='' data-nw='true' data-iframe='true' 
data-cdc-widget='syndicationIframe' 
data-apiembedsrc='skins/larry//tools.cdc.gov/api/embed/html/js/embed-2.0.3.js' 
data-iframeembedsrc='skins/larry//tools.cdc.gov/TemplatePackage/contrib/widgets/tp-widget-external-loader.js'></div><script 
src='skins/larry//tools.cdc.gov/TemplatePackage/contrib/widgets/tp-widget-external-loader.js' 
 ></script><noscript>You need javascript enabled to view this content or go to <a href='skins/larry//tools.cdc.gov/api/v2/resources/media/309335/noscript'>source URL</a>.</noscript>

</body>
</html>

我按照link 进行了基本设置。没有任何帮助

下面我附上了我的 JAVA 代码

public class WebtestActivity extends Activity 
WebView webtest;
final Activity activity = this;
@Override
protected void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    this.getWindow().requestFeature(Window.FEATURE_PROGRESS);
    setContentView(R.layout.webviewtesting);
    webtest=(WebView)findViewById(R.id.webtest);
    String htmlString = "<!-- Markup for HTML (How to Prevent Cancer or Find It Early) --><div class=\"rid_ec9fb40c_123238\" data-apiroot=\"//tools.cdc.gov/api\" data-mediatype=\"HTML\" data-mediaid=\"123238\" data-stripscripts=\"false\" data-stripanchors=\"false\" data-stripimages=\"false\" data-stripcomments=\"false\" data-stripstyles=\"false\" data-cssclasses=\"syndicate\" data-ids=\"\" data-xpath=\"\" data-oe=\"UTF-8\" data-of=\"XHTML\" data-ns=\"\" data-postprocess=\"\" data-nw=\"true\" data-iframe=\"true\" data-cdc-widget=\"syndicationIframe\" data-apiembedsrc=\"//tools.cdc.gov/api/embed/html/js/embed-2.0.3.js\" data-iframeembedsrc=\"//tools.cdc.gov/TemplatePackage/contrib/widgets/tp-widget-external-loader.js\" data-font=\"\"></div><script src='//tools.cdc.gov/TemplatePackage/contrib/widgets/tp-widget-external-loader.js' ></script><noscript>You need javascript enabled to view this content or go to <a href='//tools.cdc.gov/api/v2/resources/media/123238/noscript'>source URL</a>.</noscript>";
    webtest.getSettings().setJavaScriptEnabled(true);

    webtest.setWebChromeClient(new WebChromeClient() 
        public void onProgressChanged(WebView view, int progress)
        
            activity.setTitle("Loading...");
            activity.setProgress(progress * 100);

            if(progress == 100)
                activity.setTitle(R.string.app_name);
        
    );

    webtest.setWebViewClient(new WebViewClient() 
        @Override
        public void onReceivedError(WebView view, int errorCode, String description, String failingUrl)
        
            // Handle the error
            Log.d("des===",description);
            Log.d("failingUrl===",failingUrl);

        

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url)
        
            Log.d("shouldlLoading===",url);
            view.loadUrl(url);
            return true;
        
    );

    webtest.loadData(htmlString, "text/html", null);


【问题讨论】:

尝试使用android官方文档,这里是链接developer.android.com/reference/android/webkit/WebView.html 【参考方案1】:

试试这个代码。如果你正在学习,请使用官方文档>WebView

String htmlString = "<html><body>Your text.</body></html>";
browser.getSettings().setJavaScriptEnabled(true);
browser.loadData(htmlString, "text/html", null);

您的代码运行良好。我附上截图

【讨论】:

你能用你提到的代码试试上面的html吗?我对设备进行了同样的尝试,但无法正常工作 是的,我试过了。工作正常。您可以使用 WebChromeClient 而不是 WebViewClient。 Try it 。你的 Java 代码在哪里? 你能检查代码并在你身边运行相同的代码吗?如果它显示 html 页面,请与我分享屏幕截图,以便我知道 prblm 发生在哪里 是的,我检查过了,它有效。我附上了上面的截图 一个普通的 HTML 文件对我来说也很重要,但上述 HTML 标签只有在与服务器一起运行时才有效。为此,我只要求您尝试提到的 HTML 代码

以上是关于使用嵌入式 HTML 代码加载 WebView - Android的主要内容,如果未能解决你的问题,请参考以下文章

使用WebView加载HTML代码

使用WebView加载HTML代码

使用WebView加载HTML代码

使用WebView加载HTML代码

android webview加载嵌入了svg的html,svg作为background-img,但是不同设备为啥显示不同,怎么解决好

在android的webview中嵌入一段HTML代码或Javascript脚本