ホワイトリストに登録したドメインのサイト以外、開こうとした瞬間に強制終了して元々開いてたアプリに制御を戻す みたいなオリジナルブラウザ作ろうと思ってるが、Webviewでいけるかな edit
回答案を表示 expand_more volume_up
WebViewでもホワイトリストに登録したドメイン以外のサイトを開こうとした瞬間に強制終了し、元のアプリに戻るブラウザを作成することは可能です。
以下に、その基本的な実装方法の概要を示します。
アプリ内にホワイトリストとして許可するドメインのリストを作成します。 リストは、配列やデータベースなど、適切な方法で管理します。
WebViewClient を継承したクラスを作成し、shouldOverrideUrlLoading メソッドをオーバーライドします。 このメソッド内で、開こうとしているURLがホワイトリストに含まれているかどうかを判定します。
ホワイトリストに含まれていないURLの場合、以下の処理を行います。 WebView を Activity から削除します。 Activity を終了し、元のアプリに戻ります。 必要に応じて、警告メッセージを表示することもできます。 コード例 (Kotlin):
Kotlin class MyWebViewClient : WebViewClient() { private val whiteList = listOf("example.com", "example.org") // ホワイトリスト
override fun shouldOverrideUrlLoading(view: WebView?, request: WebResourceRequest?): Boolean { val url = request?.url.toString() if (whiteList.any { url.contains(it) }) { return false // ホワイトリスト内のURLは許可 } else { // ホワイトリスト外のURLは強制終了 (view?.parent as? ViewGroup)?.removeView(view) (view?.context as? Activity)?.finish() return true } } } コードは注意してご使用ください。 content_copy 注意点:
WebViewの設定でJavaScriptを有効にする必要がある場合があります。 強制終了時のユーザーエクスペリエンスを考慮し、適切なメッセージを表示するなどの工夫が必要です。 セキュリティ上の観点から、ホワイトリストの管理には注意が必要です。 WebViewを使ったブラウザ開発の経験があれば、比較的簡単に実装できるでしょう。もしWebViewの経験がない場合は、まずはWebViewの基本的な使い方を学習してから取り組むことをおすすめします。
不適切なコンテンツとして通報するには以下の「送信」ボタンを押して下さい。 管理チームへ匿名通報が送信されます。あなたが誰であるかを管理チームに特定されることはありません。
どのように不適切か説明したい場合、メッセージをご記入下さい。空白のままでも通報は送信されます。
通報履歴 で、あなたの通報と対応時のメッセージを確認できます。
残ってた言葉(メール) 気持ち 全件削除
「内容が失われますが、消去してもよろしいですか?」
ホワイトリストに登録したドメインのサイト以外、開こうとした瞬間に強制終了して元々開いてたアプリに制御を戻す
みたいなオリジナルブラウザ作ろうと思ってるが、Webviewでいけるかな
edit
回答案を表示
expand_more
volume_up
WebViewでもホワイトリストに登録したドメイン以外のサイトを開こうとした瞬間に強制終了し、元のアプリに戻るブラウザを作成することは可能です。
以下に、その基本的な実装方法の概要を示します。
アプリ内にホワイトリストとして許可するドメインのリストを作成します。
リストは、配列やデータベースなど、適切な方法で管理します。
WebViewClient を継承したクラスを作成し、shouldOverrideUrlLoading メソッドをオーバーライドします。
このメソッド内で、開こうとしているURLがホワイトリストに含まれているかどうかを判定します。
ホワイトリストに含まれていないURLの場合、以下の処理を行います。
WebView を Activity から削除します。
Activity を終了し、元のアプリに戻ります。
必要に応じて、警告メッセージを表示することもできます。
コード例 (Kotlin):
Kotlin
class MyWebViewClient : WebViewClient() {
private val whiteList = listOf("example.com", "example.org") // ホワイトリスト
override fun shouldOverrideUrlLoading(view: WebView?, request: WebResourceRequest?): Boolean {
val url = request?.url.toString()
if (whiteList.any { url.contains(it) }) {
return false // ホワイトリスト内のURLは許可
} else {
// ホワイトリスト外のURLは強制終了
(view?.parent as? ViewGroup)?.removeView(view)
(view?.context as? Activity)?.finish()
return true
}
}
}
コードは注意してご使用ください。
content_copy
注意点:
WebViewの設定でJavaScriptを有効にする必要がある場合があります。
強制終了時のユーザーエクスペリエンスを考慮し、適切なメッセージを表示するなどの工夫が必要です。
セキュリティ上の観点から、ホワイトリストの管理には注意が必要です。
WebViewを使ったブラウザ開発の経験があれば、比較的簡単に実装できるでしょう。もしWebViewの経験がない場合は、まずはWebViewの基本的な使い方を学習してから取り組むことをおすすめします。