gccoykf
gccoykf
  • 发布:2015-12-14 11:08
  • 更新:2019-07-23 10:23
  • 阅读:3848

一个窗口引入2个或2个以上webview

分类:MUI

大部分项目开发中,在一个窗口当中常常分为上中下结构的页面设计,而仅仅需要中间内容部分做页面切换,头部只需要变更几个文本内容. 在 mui.init()初始化中, subpages定义了子页面的引入方式和位置. 那么问题来了,subpages 能定义多个子页面吗? 如和定义呢?如果 subpages 无法载入多个,有什么方式可以做到呢?

2015-12-14 11:08 负责人:无 分享
已邀请:
chender

chender - 与人为善

肯定可以定义多个子webview啊,官方的那个通过点击tab切换webview的那个样例,你同时把四个子webview都显示出来,然后通过设置style让他们从上到下依次排列;你要到就是类似这样的效果吧;

  • gccoykf (作者)

    那需要用预载的方式吗?初始化的时候无法直接载入多个吧

    2015-12-14 11:31

gccoykf

gccoykf (作者)

要是其实是用webview将一个页面分成3个部分,顶部需要根据页面变更文本内容,底部固定内容和样式不变,中间为主题部分,要变更的都在中间这部分. 尝试了在 mui 初始化的时候传入的 subpages 中传入多个页面链接,貌似最后一个会覆盖之前的,代码如下:
subpages:[
{
url:'libs/header.html',//子页面HTML地址,支持本地地址和网络地址
id:'header',//子页面标志
styles:{
top:0,
},
},
{
url:'libs/footer.html',//子页面HTML地址,支持本地地址和网络地址
id:'footer',//子页面标志
styles:{
bottom:0,//子页面顶部位置
},
}
]

chender

chender - 与人为善

肯定使能预加载多个的,你说的覆盖指的是?

  • gccoykf (作者)

    subpages前面的设置都无效,只有最后一个设置生效

    2015-12-14 11:48

  • chender

    不好意思,还是没明白你的意思,mui.init你只调了一次把,然后subPages里面你传了一个数组对吧(多个页面的描述),然后“只有最后一个设置生效”说的是只有subPages里面的最后一个页面被预加载了?你是怎么判断只有最后一个生效了。

    2015-12-14 11:53

  • gccoykf (作者)

    回复 chender:嗯,其他传入的页面没有渲染到窗口中,只有最后一个页面描述正常渲染

    2015-12-14 13:05

  • chender

    预加载的界面应该是不会显示出来的吧,你要调相应的方法把他们显示出来才行啊,只显示了最后一个是因为你的代码里面只把最后一个显示出来了

    2015-12-14 13:10

  • gccoykf (作者)

    貌似要使用append方法添加进去

    2015-12-14 15:59

gadget2k

gadget2k

这种大概是用模板做,你看下Hello mui里的模板的例子。

  • gccoykf (作者)

    hello mui里面的例子貌似没有在一个页面中加载多个webview的例子,文档中给出的“窗口管理->创建子页面”中只有2个子窗口同时渲染(index.html+list.html),即在mui.int()中使用subPages进行初始化,如果要使用3个子窗口同时渲染貌似没看到这类文档,而且在subPages数组中只有最后一个设置生效

    2015-12-14 13:11

  • gadget2k

    文档不是说网上的,是你在hbuilder里创建一个Hello mui的项目,里面有例子。

    2015-12-14 14:06

  • gccoykf (作者)

    examples文件夹里面的例子好像没有多个webview一起渲染到同一个页面的例子

    2015-12-14 16:01

  • gadget2k

    tab-webview-main.html 应该就是你要的吧。没怎么看懂你的意思。

    2015-12-14 16:05

  • gccoykf (作者)

    回复 gadget2k:这个页面我有看到,用append方法添加到窗口中,不过不知道是什么原因各种不正常显示.新手刚接触APP的开发, ^ ^还是需要多研究研究.非常感谢两位的回答.

    2015-12-14 16:37

chender

chender - 与人为善

如果你是用的subpages:xxx的话,应该不需要自己再append了,因为mui.js里面已经append了

chender

chender - 与人为善

你估计是把几个webview叠一起了,append方法里面有显示子webview的逻辑,所以最后一个webview最后被append,也就显示在了最上面,给你的表象就是:只有最后一个成功了

  • gccoykf (作者)

    应该是这种情况,我看了实例里面的页面,用for循环的方式append进去,用数组的方式设置是要设置高度吧,估计我之前是没有给高度值所以默认是100%的高度就覆盖了.谢谢你的回答!非常感谢!!

    2015-12-14 17:17

小雄Milo

小雄Milo

<!-- #ifdef H5 -->  
        <view v-for="(item,index) in pageUrlList" :key="index" v-show="index==pageNum">  
            <iframe :src="item" style="position: absolute; display: block; border: 0px; top: 0px; bottom: 0px; width: 100%; height: 100%;"></iframe>  
        </view>  
        <!-- #endif -->  
        <!-- #ifdef APP-PLUS -->  
            <web-view  :src="pageUrl"></web-view>   
        <!-- #endif -->  

动态改变页面地址即可

该问题目前已经被锁定, 无法添加新回复