用Kotlin写一个设置WebView菜单栏的代码
时间: 2023-06-17 14:02:23 浏览: 172
以下是一个简单的示例,演示如何在Kotlin中设置WebView的菜单栏:
```kotlin
class WebViewActivity : AppCompatActivity() {
private lateinit var webView: WebView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_web_view)
webView = findViewById(R.id.webView)
// 设置WebView的菜单栏
webView.setOnLongClickListener { v ->
val hitTestResult = webView.hitTestResult
if (hitTestResult.type == WebView.HitTestResult.SRC_ANCHOR_TYPE) {
// 如果点击的是链接,则显示菜单栏
showMenu(v, hitTestResult.extra)
true
} else {
false
}
}
}
// 显示菜单栏
private fun showMenu(v: View, url: String) {
val popupMenu = PopupMenu(this, v)
popupMenu.menuInflater.inflate(R.menu.webview_menu, popupMenu.menu)
popupMenu.setOnMenuItemClickListener { menuItem ->
when (menuItem.itemId) {
R.id.menu_item_open -> {
// 在浏览器中打开链接
val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url))
startActivity(intent)
true
}
R.id.menu_item_share -> {
// 分享链接
val shareIntent = Intent(Intent.ACTION_SEND)
shareIntent.type = "text/plain"
shareIntent.putExtra(Intent.EXTRA_TEXT, url)
startActivity(Intent.createChooser(shareIntent, "分享链接"))
true
}
else -> false
}
}
popupMenu.show()
}
}
```
在此示例中,我们使用 `setOnLongClickListener` 方法为WebView设置长按监听器。如果用户长按了一个链接,我们将显示一个菜单栏,其中包含“在浏览器中打开”和“分享链接”选项。当用户选择其中一个选项时,我们将执行相应的操作,例如在浏览器中打开链接或分享链接。请注意,我们在布局文件中定义了一个名为“webView”的WebView实例。
阅读全文