Webview组件和HTML的介绍
来源:互联网 发布:淘宝催好评短信模板 编辑:程序博客网 时间:2024/05/16 12:41
Deviceone平台并不是基于html5的跨平台开发工具。我们开发一个app都是使用原生的组件,但是在某些场景下html5也是非常好的选择,比如复杂的图文混排(类似新闻),比如报表chart之类用html很方便。如果你对html相关技术熟悉的话,你也可以在更多场景使用。
我们从二个方面来介绍:
加载网页
这是基本功能,加载网页很简单就是通过设置url属性为本地html(data://,source://协议)和web网页(http://,https://协议)。
do_Webview加载网页你可以理解为就像一个内嵌的浏览器打开网页一样,常用的js,css等所有和web相关的技术都支持,通常手机都带了缺省的浏览器,这个浏览器的核心和do_Webview是一致的。
当然还是有可能有细微差别,浏览器相对来说成熟更多,容错和兼容性更强。
var
webview = ui(
"do_webview_id1"
);
webview.url =
"source://view/test.htm"
;
webview.url =
"http://www.baidu.com"
html相关的技术太多,我们这里不再做介绍,不属于deviceone平台的范畴。
调用deviceone其它组件
这个是重点,do_Webview组件是deviceone提供了众多组件中一个,这个组件是一个ui文件里的一部分,可以实现它和其它组件的交互。在html里面的js代码能调用其它MM,SM和UI组件。
和在ui.js里调用deviceone的API类似,唯一区别是所有与deviceone相关的操作都必须放在onDeviceOneLoaded
回调函数里,这个回调函数有点类似JQuery的ready方法。
SM和MM的使用方法完全一样,但是对UI的操作建议是通过触发page的消息来处理。比如test.html加载在test.ui里的webview组件里,如果test.html需要控制test.ui里的其它ui,最好的方式是在test.html里的js代码发送一个page作用域的消息给test.ui.js,在test.ui.js里去操作其它ui组件。
可以参考以下示例,这个示例完整展示了调用SM,MM,UI的方法:
//login.html
<Script>
var
login = document.getElementById(
"login"
);
var
back = document.getElementById(
"back"
);
//所有和deviceone相关的调用都需要放在onDeviceOneLoaded回调函数里,类似JQuery的ready方法
window.onDeviceOneLoaded =
function
() {
// sm对象的获取和在ui.js里获取没有差别
var
nf = sm(
"do_Notification"
);
var
app = sm(
"do_App"
);
var
page = sm(
"do_Page"
);
login.onclick =
function
() {
var
name = document.getElementById(
"loginName"
).value;
var
pwd = document.getElementById(
"loginPwd"
).value;
if
(!name || !pwd) {
//调用原生的alert方法
nf.alert(
"用户名或密码不能为空!"
)
}
else
loginNewPage(http, page);
}
back.onclick =
function
() {
//点击html的按钮返回到前一个page
app.closePage();
}
// mm对象的创建和在ui.js里没有区别
var
http = mm(
"do_Http"
);
http.method =
"POST"
;
http.on(
"result"
,
function
(data) {
//对ui的操作最好是通过消息发送到ui.js里去做,而不是直接在html里操作
page.fire(
"progressbar"
,
"hide"
);
if
(data.status == 200) {
app.openPage({
source :
"source://view/main.ui"
,
statusBarState :
"transparent"
});
}
});
}
function
loginNewPage(http, page) {
http.url =
"http://www.baidu.com"
;
http.request();
//对ui的操作最好是通过消息发送到ui.js里去做,而不是直接在html里操作
page.fire(
"progressbar"
,
"show"
);
}
</Script>
上面的示例可以看到通过加装本地html可以直接访问deviceone的任何API,包括html不支持的本地读写等操作。
另外加载web页面,也就是http:// 的页面其实也可以访问deviceone的任何API,这会带来一个安全问题,所以do_Webview组件增加一个属性来控制,如果这个属性为false,则无法调用deviceone的其它组件了
webview.allowDeviceOne =
false
;
- Webview组件和HTML的介绍
- android WebView 和 Html 的相互调用
- 一.webView 的介绍和用途
- webview和html交互
- 如何获取WebView的url和title和html
- iOS-获取webview的 url 和 title 和 html
- iOS-获取webview的 url 和 title 和 html
- extjs的上传组件和HTML编辑器组件
- 实现应用WebView组件加载使用HTML代码添加的帮助信息
- WebView的详细介绍
- WebView的介绍
- WebView的详细介绍
- 安卓webview和js+html交互利用的addJavascriptInterface和webview.loadUrl("javascript:**");
- 安卓webview和js+html交互利用的addJavascriptInterface和webview.loadUrl("javascript:*
- 安卓webview和js+html交互利用的addJavascriptInterface和webview.loadUrl("javascript:**");
- 安卓webview和js+html交互利用的addJavascriptInterface和webview.loadUrl("javascript:**");
- 安卓webview和js+html交互利用的addJavascriptInterface和webview.loadUrl("javascript:**");
- 安卓webview和js+html交互利用的addJavascriptInterface和webview.loadUrl("javascript:**");
- Android之三种Menu的使用与分析
- The XLIFF file does not contain a target language
- sql查询50题
- (第24讲)java小程序——Applet
- 《转 - 雨中奔跑 3》 git merge,rebase和*(no branch)
- Webview组件和HTML的介绍
- 支持xutils的圆形图片
- Android App支付系列(一):微信支付接入详细指南(附官方支付demo)
- 矩阵的特征值和特征向量的雅克比算法C/C++实现
- 乐学成语
- Qt Creator 窗体控件自适应窗口大小布局
- Linux中软连接和硬链接
- 圆形图片2不支持xutils
- Android Studio自动提取控件Style样式