动态替换搜索框内容
1.获取页面的实例:参考https://uniapp.dcloud.io/collocation/frame/window
html5plus里的plus.webview.currentWebview()。在uni-app里vue页面直接使用plus.webview.currentWebview()无效
注意点击搜索框的效果
https://uniapp.dcloud.io/collocation/frame/lifecycle
在page.json配置好参数 注意app-plus只针对app端
"pages":[{
"path": "pages/index/index",
"style": {
"navigationBarTextStyle": "white",
"navigationBarBackgroundColor": "#345DC2", // 导航栏背景色
"app-plus": {
"bounce": "none", // 关闭回弹
"titleNView": { // 自定义导航配置
"searchInput": { // 原生导航搜索框
"align": "center", // 居中
"backgroundColor": "#F0F1F2",
"borderRadius": "30rpx",
"placeholder": "搜索你想要的内容",
"placeholderColor": "#979C9D" ,// 提示文本颜色
"disabled": false // 禁止输入,点击跳转到搜索页
},
"buttons": [ // 按钮,注意是数组,中括号[]
{
"fontSrc": "/static/icon/iconfont.ttf", // 指定图标文件
"text": "\ue689", // /u 开头,后面 e开始
"fontSize": "23", // 按钮大小
"background": "rgba(0,0,0,0)" // 按钮全透明背景
}
]
}
}}}]
<template>
<view class="content">
</view>
</template>
<script>
export default {
data() {
return {
title: 'Hello'
}
},
onLoad() {
// #ifdef APP-PLUS
this.pplaceholderData()
// #endif
},
//赠送一个点击api
onNavigationBarSearchInputClicked(e) {
console.log(e,'监听原生标题栏搜索输入框点击事件(pages.json 中的 searchInput 配置 disabled 为 true 时才会触发)')
},
methods: {
pplaceholderData() {
const currentWebview = this.$scope.$getAppWebview(); //此对象相当于html5plus里的plus.webview.currentWebview()。在uni-app里vue页面直接使用plus.webview.currentWebview()无效
let arr = ['星期一吃饭','星期2喝酒','星期3抽烟','星期4烫头','星期5睡觉'];
let i = 0;
let len = arr.length - 1;
currentWebview.setStyle({
"titleNView": {
"searchInput": {
"placeholder": arr[i] //从0开始调用一次 因为下面的定时器直接访问的arr[1]
}
}
})
setInterval(() => {
i = i < len ? ++i : 0; //3<4 成立 ++i==4 执行下的代码访问arr[4]没有元素所以length-1// i++每次返回的都是0
// console.log(i, arr[i])
currentWebview.setStyle({
"titleNView": {
"searchInput": {
"placeholder": arr[i] //从1开始
}
}
})
}, 2000)
}
}
}
</script>
<style lang="scss">
.content {
position: absolute;
z-index: 999;
background-color: #000080;
width: 100%;
height: 200px;
}
</style>
完毕。并不复杂 仔细看耐心看即可