String html = "<!DOCTYPE html>\n" +
"<html>\n" +
"<head>\n" +
"<title></title>\n" +
"</head>\n" +
"<body>\n" +
" Hello!耶耶耶<br/>\n" +
"HTML Page here!\n" +
"<img src=\"img/bdlogo.gif\"></im>\n" +
"</body>\n" +
"</html>"
webView.loadData(html, "text/html", "UTF-8")
//webView.loadDataWithBaseURL(null, html, "text/html", "UTF-8", null)
}
ios上plus是一直存在的,不涉及等ready事件。但安卓上还是需要等plus ready。在安卓环境中,通常情况下需要html页面解析完成后才会让5+ API生效,安卓的执行的顺序为:
1. 加载html页面,loading
2. 解析html页面(解析title节点、下载script/link等节点引用的资源,如js/css文件)
3. 触发DOMContentLoaded事件
4. 触发plusready事件
此文对执行顺序有详细描述:http://ask.dcloud.net.cn/article/571
我们总是在不停追求性能优化,生效时间越早,我们可以把app的体验做的更好。
在HBuilder7.5版本之后安卓版支持提前注入5+ API,可以在plusready事件触发之前调用5+ API, *** 作方法是在页面中添加以下节点:
<script src="html5plus://ready"></script>,示例如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no"/>
<title>HTML5+ API</title>
<script src="html5plus://ready"></script>
<script type="text/javascript" charset="utf-8">
// 这里可以调用5+ API了,为了更好的兼容性,应该使用以下代码进行判断
if(window.plus){
// 在这里调用5+ API
}else{// 兼容老版本的plusready事件
document.addEventListener('plusready',function () {
// 在这里调用5+ API
},false)
}
</script>
</head>
<body>
Hello HTML5 plus
Android开发_如何调用 浏览器访问网页和Html文件一、启动android默认浏览器
Intent intent= new Intent()
intent.setAction('android.intent.action.VIEW')
Uri content_url = Uri.parse('http://www.cnblogs.com')
intent.setData(content_url)
startActivity(intent)
这样子,android就可以调用起手机默认的浏览器访问。
二、指定相应的浏览器访问
1、指定android自带的浏览器访问
( “com.android.browser”:packagename ;“com.android.browser.BrowserActivity”:启动主activity)
Intent intent= new Intent()
intent.setAction('android.intent.action.VIEW')
Uri content_url = Uri.parse('http://www.cnblogs.com')
intent.setData(content_url)
intent.setClassName('com.android.browser','com.android.browser.BrowserActivity')
startActivity(intent)
2、启动其他浏览器(当然该浏览器必须安装在机器上)
只要修改以下相应的packagename 和 主启动activity即可调用其他浏览器
intent.setClassName('com.android.browser','com.android.browser.BrowserActivity')
uc浏览器':'com.uc.browser', 'com.uc.browser.ActivityUpdate“
opera :'com.opera.mini.android', 'com.opera.mini.android.Browser'
qq浏览器:'com.tencent.mtt', 'com.tencent.mtt.MainActivity'
三、打开本地html文件
打开本地的html文件的时候,一定要指定某个浏览器,而不能采用方式一来浏览,具体示例代码如下
Intent intent= new Intent()
intent.setAction('android.intent.action.VIEW')
Uri content_url = Uri.parse('content://com.android.htmlfileprovider/sdcard/help.html')
intent.setData(content_url)
intent.setClassName('com.android.browser','com.android.browser.BrowserActivity')
startActivity(intent)
关键点是调用了”content“这个filter。
以前有在win32编程的朋友,可能会觉得用这种形式”file://sccard/help.html“是否可以,可以很肯定的跟你说,默认的浏览器设置是没有对”file“这个进行解析的,如果要让你的默认android浏览器有这个功能需要自己到android源码修改manifest.xml文件,然后自己编译浏览器代码生成相应的apk包来重新在机器上安装。
大体的步骤如下:
1、打开 packages/apps/Browser/AndroidManifest.xml文件把加到相应的后面就可以了
2、重新编译打包,安装,这样子,新的浏览器就支持”file“这个形式了
有兴趣的可以去试试。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)