关于onNavigationBarSearchInputFocusChanged或onNavigationBarSearchInputChanged或者onNavigationBarButtonTap等监听时会触发两次,执行两次里面的代码。
我已经找出执行两次的原因了,是下面这两个语句,两条语句,不管是在一个方法里还是不同的方法,都会导致执行两次。目前发现只有在android出现,ios没有这个情况。这是bug?该怎么解决?
this.webview = this.$mp.page.$getAppWebview();
this.webview.setStyle({ titleNView: { searchInput: { placeholder: this.defaultKeyword } } });
这问题在ios和android测试了,目前只发现android会出现。下面附上重新代码
===================================vue页面
<template>
<view>
</view>
</template>
<script>
export default {
data() {
return {
webview:{},
defaultKeyword:"anything"
};
},
methods:{
ddd() {
this.webview = this.$mp.page.$getAppWebview(); //窗口对象
this.webview.setStyle({
titleNView: {
searchInput: {
placeholder: this.defaultKeyword
}
}
});
}
},
onLoad:function(){
this.ddd();
},
onNavigationBarSearchInputClicked:function(){
},
onNavigationBarSearchInputChanged:function(e){
console.log(e.text);
console.log("我会被错误地执行两次~~");
}
}
</script>
<style lang="scss">
</style>
=====================================pages配置
{
"path" : "pages/search/search",
"style": {
"navigationBarTitleText": "搜索",
"app-plus": {
"softinputNavBar": "none",
"titleNView": {
"searchInput": {
"autoFocus": true,
"borderRadius": "16px",
"backgroundColor": "#ffffff",
"placeholder": "输入要搜索内容",
"placeholderColor":"#999"
},
"buttons": [{
"text": "搜索",
"fontSize": "16px",
"width": "48px",
"borderRadius": "15px"
}]
}
}
}
}
6 个回复
左右互搏 (作者)
左右互搏 (作者)
pages
左右互搏 (作者)
左右互搏 (作者)
再补充一点,在Android下
webview.setTitleNViewSearchInputFocus();
设置false时,无法完全起作用,只是把软键盘收起来,输入光标焦点还是留在输入框那里
在IOS下没有这个问题
DCloud_Android_zl
我这边测试,键盘可以回收,焦点也会失去。
2020-06-03 16:38
DCloud_Android_zl
麻烦提供一个完整的demo吧,你说的这俩问题我用最新的基座无法复现。
左右互搏 (作者)
直接把前面的代码,贴到一个新建项目就能重新问题。
下面附件是我做的demo,用的2.7.9,在Android真机调试,问题重现
2020-06-03 14:33
左右互搏 (作者)
再补充新发现的一个问题:
在Android下,用onNavigationBarButtonTap和onNavigationBarSearchInputConfirmed监听搜索按钮,用户按下搜索后,原生导航栏的搜索框都不会失去焦点。
2020-06-03 14:37
DCloud_Android_zl
回复 左右互搏: 我们这个的标准是一致的,两个平台都不会失去焦点。
2020-06-03 16:37
左右互搏 (作者)
回复 DCloud_Android_zl: 按照正常的使用逻辑,用户按下搜索后,输入框的焦点应该消失才对,就像input组件一样。假如不失去焦点,后面的交互逻辑和关键字监听都比较麻烦。PS:IOS实测会失去焦点
2020-06-03 17:40
DCloud_Android_zl
回复 左右互搏: 我们对比了ios,触发事件的事件的时候确实不会收键盘。
2020-06-04 18:32
DCloud_Android_zl
回复 DCloud_Android_zl: 如果方便的话可以把QQ号给我,提供个视频,我看一下
2020-06-04 18:33
左右互搏 (作者)
补充demo