uni-app原生導航輸入框操作


1 引言
在我們使用HbuilderX開發APP時,經常會有一個很實用的功能需要開發,那就是搜索功能了,uni-app為我們提供該功能,大大的簡化了開發難度,只要進行簡單的配置就可以生成原生的導航輸入框了(筆者的另一篇筆記中記錄了配置過程,這里就不重復介紹了),那么現在有了原生輸入框了,我們要如何操作輸入框中的內容呢,原生輸入框可不像input組件那樣可以直接綁定數據的,下面筆者記錄一下操作原生輸入框的內容(比如輸入框的聚焦失焦、輸入內容的獲取)

2 導航欄事件監聽
2.1 頁面生命周期:

https://uniapp.dcloud.io/collocation/frame/lifecycle?id=%e9%a1%b5%e9%9d%a2%e7%94%9f%e5%91%bd%e5%91%a8%e6%9c%9f

在uni-app頁面周期有這么的三個函數:

onNavigationBarSearchInputChanged    :監聽原生標題欄搜索輸入框輸入內容變化事件
onNavigationBarSearchInputConfirmed  :監聽原生標題欄搜索輸入框搜索事件,用戶點擊軟鍵盤上的“搜索”按鈕時觸發。
onNavigationBarSearchInputClicked       :監聽原生標題欄搜索輸入框點擊事件
2.2 獲取輸入框內容

 要獲取輸入框內容,可以在生命周期里通過參數e.text,使用如下所示。 

<script>
export default {
data() {
return {}
},
methods: {

},
// 導航搜索欄監聽搜索事件
onNavigationBarSearchInputConfirmed(e){
// 搜索框內容 : e.text
console.log(e.text);
}
}
</script>
2.3 輸入框的失焦與聚焦

失焦與聚焦的形式要通過webview的方式來設置,首先我們先獲取當前頁面的webview對象,然后再調用setTitleNViewSearchInputFocus方法來設置。

聚焦

// 獲取當前頁面的webview對象
var webView = this.$mp.page.$getAppWebview();
// 搜索框聚焦
webView.setTitleNViewSearchInputFocus(true);
失焦

// 獲取當前頁面的webview對象
var webView = this.$mp.page.$getAppWebview();
// 搜索框失焦
webView.setTitleNViewSearchInputFocus(false);
小結
在筆者看來,這兩個知識點有有用,可以應對大部分的開發需求了,在日常的開發中用的最多的也是這么兩個。比如當用戶按下搜索按鈕時,我們就獲取搜索框的內容,然后調用搜索接口,必要時還可以清除搜索框的內容並聚焦與搜索框。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM