使用嵌入式 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'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的主要内容,如果未能解决你的问题,请参考以下文章
android webview加载嵌入了svg的html,svg作为background-img,但是不同设备为啥显示不同,怎么解决好