建立一個 EditText & Button
使用者可以透過按下搜尋按鈕或是在輸入關鍵字後點擊確認後進行搜尋
按下返回鍵可以回到上一頁
1.Android 7.0 之後需要在 AndroidManifest 中取得使用者的 Internet 權限
AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
2.需要實作 WebViewClient 並且透過 setWebClient ,使用如果直接載入 URL Android 會自動載入 Browser。
MainActivity.kt
class MainActivity : AppCompatActivity() {
val webViewClient = WebViewClient()
var text:String = ""
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
webView.setWebViewClient(webViewClient)
webView.loadUrl("https://www.google.com")
...
}
}
3.搜尋的功能透過loadUrl的方式觸發
但需要注意 google 搜尋的網址是 "https://www.google.com/search?q=<你輸入的關鍵字>"
4.想要獲得回上一頁功能可以透過 override onBackPressed 方式獲得
MainActivity.kt
override fun onBackPressed() {
if (webView.canGoBack()) {
webView.goBack()
} else {
super.onBackPressed()
}
return
}
webView 裡有提供 function canGoBack 來確認是否有上一頁可以回去。
我們做判斷如果有上一頁,我們就可以使用 goBack 回去 Web 的上一頁。
如果沒有上一頁可以回去,我們就使用原始的 onBackPressed 回到 Home
5.透過 InputMethodManager 來管理小鍵盤
MainActivity.kt
private fun hidekeyboard() {
val imm = this.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
imm.hideSoftInputFromWindow(this.window.decorView.windowToken, 0)
}
首先我們先實例化一個 InputMethodManager
然後使用 hideSoftInputFromWindow 這個 function 需要兩個參數,分別是 window token 跟 flag。
window token 我們可以由 edittext 裡拿到 或是從 View 裡取得。
flag 通常使用預設 0 ,如果有其他需求可以看 這裡
今天就先到這裡囉,我們明天見~~