wclssdn
wclssdn
  • 发布:2016-08-16 00:01
  • 更新:2016-09-06 16:55
  • 阅读:1180

plus.webview.getWebviewById('x')的结果在多个页面是用的多份拷贝么?

分类:HTML5+

如题描述,我在A页面,创建了一个webview,id为x,得到的webview对象(obj),设置了一个属性,obj.y=true

然后,我在B页面,通过var obj = plus.webview.getWebviewById('x')获取到此webview,但是obj.y未定义。

还有,如何判断一个webview已经被close掉了?

就用上边的场景,obj.close() 后 obj依旧是一个对象。。。

2016-08-16 00:01 负责人:无 分享
已邀请:
Trust

Trust - 少说废话

请贴出相关代码,描述清楚业务需求。

  • wclssdn (作者)

    抽空看下这个问题。。。 简单描述就是,创建一个webview,id为x,在其他窗口中通过 plus.webview.getWebviewById('x')获取到此对象,在此对象上增加属性等信息在其他窗口中获取不到。

    2016-09-06 16:34

迷途小学生

迷途小学生

在JS中通过点语法定义添加的属性,在新创建的对象是无法获取的,所以会导致第一个问题的出现(只是个人的想法。。。)

  • wclssdn (作者)

    根据官方给出的答案,这个对象就是比较特殊~ 跟语法无关。知晓~

    2016-09-07 11:15

wclssdn

wclssdn (作者)

app启动,默认就打开两个webview,然后,还有一个页面,没有创建。

其中webview A 执行了如下的命令(与webview B交替执行的)

webview B 执行了如下命令

发现的问题:

  1. webview对象在多个webview之间,好像不共享内存地址,属性在其他webview中拿不到(就算重新调用plus的api再次获得webview对象)
  2. webview关闭后,当前webview中保存的被关闭的webiview对象依旧可读,也没有任何属性或者方法可判断这个webview是否已经被关闭。

我想做一个webview的窗口管理,需要在多个webview之间共享当前已经打开的webview列表(我根据id排重,相同的id不会创建多个webview,易管理)
目前,发现关闭的webview依旧可用,webview的属性无法多webview共享等问题。

@DCloud_客服_Trust

  • wclssdn (作者)

    @86285 帮忙看下。。。 多谢~

    2016-08-25 10:21

Trust

Trust - 少说废话

不好意思,未能及时回复。

1、为webview添加额外的参数,需要在创建的时候添加。而不能像JS普通对象那样,直接obj.param这样操作。
2、获取close掉的webview结果是null。
3、可以监听webview的相关事件,来得知webview的一些状态。

请参考webview模块的相关API
http://www.html5plus.org/doc/zh_cn/webview.html

  • wclssdn (作者)

    多谢回复~ 我是想优化一下webview窗口管理,一个id只有一个窗口就够了~ 所以我想在所有窗口中知道某个id的webview是存在,还是不存在。。。好像比较难办,可否提供一些思路?多谢~

    2016-09-07 11:14

  • Trust

    回复 wclssdn:ID这种标识通常都是唯一的,不应当出现重复的。上面也提到了,你想知道某个webview是否存在,就去用相应的方法去获取,如果返回null说明不存在。

    2016-09-07 11:20

  • wclssdn (作者)

    回复 Trust:这个其实还不够~ 因为webview还有一些事件,比如loaded。我要创建webview,在它loaded后执行一些回调方法,当在创建此webview的窗口中做这件事儿是很容易的。但是,当在其他窗口能获取到此webview(创建它的窗口并没有关闭它)的时候,就很难判断此webview是否已经loaded了。。。而监听loaded也是不可能的(要先拿到webview对象才能写loaded监听,是在别的窗口中创建的,所以不可能监听的到)


    说的比较乱,但核心的问题就是,我想要在webview对象上加一些所有窗口共享的东西。。并且不能是持久缓存(如localStorage),在对象销毁的时候,自动销毁(依附在对象上的是最好的)

    2016-09-09 10:51

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