11package com.web3auth.core
22
33import android.annotation.SuppressLint
4+ import android.content.Context
5+ import android.content.Intent
6+ import android.net.Uri
47import android.os.Bundle
8+ import android.os.Message
59import android.view.ViewTreeObserver.OnScrollChangedListener
6- import android.webkit.WebSettings
7- import android.webkit.WebView
8- import android.webkit.WebViewClient
10+ import android.webkit.*
911import androidx.appcompat.app.AppCompatActivity
1012import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
1113import com.web3auth.core.types.WALLET_URL
@@ -32,7 +34,7 @@ class WebViewActivity : AppCompatActivity() {
3234 if (walletUrl != null ) {
3335 view?.loadUrl(walletUrl)
3436 }
35- return false ;
37+ return false
3638 }
3739
3840 override fun onPageFinished (view : WebView ? , url : String? ) {
@@ -44,6 +46,7 @@ class WebViewActivity : AppCompatActivity() {
4446 webSettings.javaScriptEnabled = true
4547 webSettings.domStorageEnabled = true
4648 webSettings.userAgentString = null
49+ webSettings.setSupportMultipleWindows(true )
4750
4851 if (walletUrl != null ) {
4952 webView.loadUrl(walletUrl)
@@ -53,6 +56,24 @@ class WebViewActivity : AppCompatActivity() {
5356 swipeRefreshLayout?.setOnRefreshListener {
5457 webView.reload()
5558 }
59+
60+ webView.webChromeClient = object : WebChromeClient () {
61+ override fun onCreateWindow (
62+ view : WebView ,
63+ dialog : Boolean ,
64+ userGesture : Boolean ,
65+ resultMsg : Message
66+ ): Boolean {
67+ val result = view.hitTestResult
68+ val data = result.extra
69+ val context: Context = view.context
70+ val browserIntent = Intent (Intent .ACTION_VIEW , Uri .parse(data))
71+ context.startActivity(browserIntent)
72+ return false
73+ }
74+ }
75+
76+ webView.addJavascriptInterface(this , " AndroidBridge" );
5677 }
5778
5879 override fun onStart () {
@@ -74,4 +95,14 @@ class WebViewActivity : AppCompatActivity() {
7495 else -> super .onBackPressed()
7596 }
7697 }
98+
99+ @JavascriptInterface
100+ fun enablePullToRefresh () {
101+ swipeRefreshLayout?.isEnabled = true
102+ }
103+
104+ @JavascriptInterface
105+ fun disablePullToRefresh () {
106+ swipeRefreshLayout?.isEnabled = false
107+ }
77108}
0 commit comments