本人遇到一个问题,就是取到外网页面中js的变量,开始了坑路
NewsNing
- 发布:2015-08-27 11:05
- 更新:2015-08-27 18:03
- 阅读:1824
10 个回复
NewsNing (作者) - 天行键
第一种:想在webview中执行js代码来实现把js变量保存在本地
NewsNing (作者) - 天行键
第二种:在webview中执行window.localStorage的原生js代码
NewsNing (作者) - 天行键
第三种:脑洞大开,向webview里面的添加代码<script src="xxxxxx/mui.min.js"></script>
然后去调用plus去执行保存的代码
NewsNing (作者) - 天行键
我就日了
NewsNing (作者) - 天行键
现在还有2种想法:1:脑洞打开,在第三种基础上发送参数到自己的服务器,然后取到值。2:用原生的方法调用返回值。
这2种方式暂时木有尝试
chender - 与人为善
基本功不扎实啊,evalJS是异步的,所以马上取值肯定是空,你setTimeout试一下
NewsNing (作者)
好,我去试试,忘了蔗渣
2015-08-27 13:02
NewsNing (作者) - 天行键
用经过一顿折腾,改善了一下第三种方法
我有点奇怪
NewsNing (作者) - 天行键
成功啦!
感谢@chender 提醒
hilongjw - cov
异步问题,你这样这是在理想网速下,如果超过0.3s没加载完成呢。可以写一个callback来触发
NewsNing (作者)
@3553 具体怎么实现呢
2015-08-27 17:54
chender - 与人为善
这个和网速没关系,和手机性能有关系;
你要在baidu里面注入的那一段js代码里面再加一句:plus.webview.parent().evalJs("xxxx")通知父页面