Skip to content

Commit 57434a5

Browse files
Merge pull request #79 from Web3Auth/feat/webview_issues
Feat/webview issues
2 parents 70ccb6d + 9c97407 commit 57434a5

File tree

1 file changed

+35
-4
lines changed

1 file changed

+35
-4
lines changed

core/src/main/java/com/web3auth/core/WebViewActivity.kt

Lines changed: 35 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
package com.web3auth.core
22

33
import android.annotation.SuppressLint
4+
import android.content.Context
5+
import android.content.Intent
6+
import android.net.Uri
47
import android.os.Bundle
8+
import android.os.Message
59
import android.view.ViewTreeObserver.OnScrollChangedListener
6-
import android.webkit.WebSettings
7-
import android.webkit.WebView
8-
import android.webkit.WebViewClient
10+
import android.webkit.*
911
import androidx.appcompat.app.AppCompatActivity
1012
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
1113
import 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

Comments
 (0)