今天練習一下使用 WebView。
1 |
https://www.google.com.tw/search?q=關鍵詞 |
- 使用者可以通過輸入框打入關鍵詞跳到 Google 畫面進行搜尋。
- 也可以在輸入完關鍵詞以後,點鍵盤上的 Search 來進行搜尋。
- 在搜尋的時候將鍵盤收起來。
隱私權設定
和在大陸版的 iOS 系統一樣,如果要使用網路,是需要向使用者請求權限的。
類似於 iOS 的 Info.plist 在 Android 中是在 AndroidManifest.xml 中加入需要請求的權限。
1 |
<uses-permission android:name="android.permission.INTERNET"/> |
WebView
使用起來沒什麼問題,和 iOS 的 UIWebView 使用起來很像,沒什麼問題。
比較特別的是,初始化的時候需要餵一個 WebViewClient 進去,然後通過 loadUrl 讀取頁面。
比 iOS 輕鬆的地方應該是,可以直接通過 String 來 loadUrl 而不用像 iOS 需要先轉成 URL 類型。
1 2 3 |
val webViewClient = WebViewClient() webView.setWebViewClient(webViewClient) webView.loadUrl("https://www.google.com") |
EditView / Keyboard
和 iOS 中的 UITextField 類似,可以對 EdidView 設定鍵盤類型,包括 return 按鈕的類型,比如 Done / Search / Return 等等。
1 |
android:imeOptions="actionSearch" |
收鍵盤
不知道有沒有更容易的收鍵盤方式,目前來案收鍵盤
1 2 |
val ime = this.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager ime.hideSoftInputFromWindow(view.windowToken, 0) |
TextView 事件監聽
EditView 也是通過 TextView.OnEditorActionListener 來監聽事件,比如鍵盤點下了 Done / Search 等等。
1 |
TextView.OnEditorActionListener { view, actionId, event -> ...} |
紀錄
- 有一個現象,如果一開始放了<uses-permission />安裝好 App之後即使拿掉了也沒出現問題。
可能要了解一下這方面的機制。
參考
- 官方文件 – EditorInfo (Keyboard 事件定義)
- 官方文件 – WebViewClient
- 可以到 Github 上看對應的 SourceCode