weex-15-组件web的使用

本节学习内容

熟练掌握web组件的用法

功能
1.设置web组件加载的地址
2.控制向前,重载

1.设置web组件的地址

C4D9E0B9-668D-4157-B8E5-D0BFC335568E.png

设置src字段即可,代码如下

<template>
    <div class="page">
      <web class="page" src="http://baidu.com">    </web>
    </div>
</template>
<script>
</script>
<style>
.page{
    display: flex;
    flex-direction: column;
}
.page{
    flex: 1; 
            width:750px;
}
</style>

解释一个布局问题

  1. flex: 1; 让组件具有弹性,弹性值为1,你可以这样理解,一个皮筋有一个力向外拉它,web视图就被这个力拉的和容器一样高
  2. width:750px;设置宽度为屏幕宽度,注意这个特别重要,如果不设置宽度,在真机上是显示不出来的,网页上是可以显示的。

当然你也可以设置高度height,但是你要设置屏幕显示,显然这种方式比较困难

除了上述方式设置满屏,我们还可以使用决定定位设置满屏,布局代码如下

.page{
    position: absolute;
    top: 0px;
    left: 0px;
    right: 0px;
    bottom: 0px;
}

2.控制向前,向后,重载

当我们单击一个按钮打开一个新的网页的时候,如何返回前一个页面呢?我们带着疑问来继续今天的内容

第一步.我们需要引入一个webView模块

const webview = weex.requireModule('webview')

第二步 设置web标签引用名称

<web class="web" src="http://baidu.com" ref='web'></web>

第三步 增加一个刷新按钮和一个上一页按钮

<template>
<div class="page">
    <web class="web" src="http://baidu.com" ref='web' ></web>
    <text class="pre-button" @click="clickPre">上一页</text>
    <text class="refresh-button" @click="refresh">刷新</text>
</div>
</template>

第四步 如何实现上一页事件

clickPre(){
    webview.goBack(this.$refs.web)
}

第五步 实现刷新事件

refresh(){
    webview.reload(this.$refs.web)
}

下面是布局代码

<style>
.page{
    display: flex;
    flex-direction: column;
    align-items: center;
}

.web{
    flex:1;
    width:750px;
}
.pre-button{
    width:500px;
    height: 88px;
    border-radius: 44px;
    background-color: burlywood;
    color:white;
    text-align: center;
    line-height: 88px;
}

.refresh-button{
    width:500px;
    height: 88px;
    border-radius: 44px;
    background-color: indianred;
    color:white;
    text-align: center;
    line-height: 88px;
}
</style>

效果图如下

2DF529C7-2BBF-435C-9E37-1A245027028D.png

接下来还有几个事件要说一下

  • 页面开始加载事件(pagestart)
  • 页面加载完成事件(pagefinish)
  • 页面失败事件(error)

就不多说了直接看代码

<web class="web" src="http://baidu.com" ref='web' @pagestart="start" @pagefinish="finish" @error="error"></web>

只要在methods集合中实现这几个方法就可以了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,477评论 25 708
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,809评论 1 92
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,251评论 4 61
  • 突然想来写点什么,但到底不知写在哪里可以不被熟人亲戚看见,然而突然记得过年那会堂弟给我介绍这里可以写点小心事,...
    林大宽阅读 257评论 0 0
  • 天生的强者,从不畏惧风浪,从不抗拒孤独。 最近又开始抑郁了。 从我上大学开始到现在,抑郁算是陪伴了我很多个日...
    G弦咏叹调阅读 315评论 0 0