最近用APICloud框架开发了一个视频app遇到的一些问题;
1.跨页面 frame 或者 跨 win 调用函数使用
api.execScript({
name:'',
script: "function()"
});
使用 execScript 可以正常调用函数,前提是函数不在 apiready = function() {} 作用域当中,否则安卓会调用不到;
其中 execScript 的name属性不填默认win官方的让填root ,我填了找不到win不会响应,不知道是不是bug;
不过由于使用 execScript 调用函数 传参会比较不方便等问题,后来调用统一改为消息监听模式 例如 B 页面调用 A 页面函数
B页面某一动作后:
api.sendEvent({//发送消息
name: 'XXX'
});
A页面执行doSomeThing函数,如果需要可以传参:
api.addEventListener({//接收到消息
name: 'XXX'
}, function(ret, err) {
doSomeThing();
});
2. 当Frame采用嵌入式使用自定义头部时造成的高度塌陷
apiready = function() {
var getheader = $api.dom('header'); // 获取 header 标签元素
$api.fixStatusBar(getheader);
3.获取标签属性问题
给了标签一个自定义属性 例如 data-status = “xxx”,采用 el.data(‘status’) 获取到值然后进行操作,后面发现问题点是 el.data(‘status’) 获取属性值只获取第一次的,data-status值改变后它还是不变,改成用 el.attr(‘data-status’) 实时获取 完美解决这个坑点。
领取专属 10元无门槛券
私享最新 技术干货