aboutsummaryrefslogtreecommitdiffstats
path: root/android
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2026-03-09 08:30:41 -0700
committerAdam Soltys <[email protected]>2026-03-09 08:30:41 -0700
commitb83110a8dccb9615ff56787e4358323151ffc453 (patch)
treedb1b938d208b767b06dac33456e9a189a83f05f4 /android
parentc7f142e1bd9fcb3dcd9552fb2a1dc7958054965f (diff)
downloadcoinos-ui-b83110a8dccb9615ff56787e4358323151ffc453.tar.gz
coinos-ui-b83110a8dccb9615ff56787e4358323151ffc453.zip
use JavascriptInterface for HCE instead of Capacitor plugin
Diffstat (limited to 'android')
-rw-r--r--android/app/src/main/java/io/coinos/MainActivity.java20
1 files changed, 20 insertions, 0 deletions
diff --git a/android/app/src/main/java/io/coinos/MainActivity.java b/android/app/src/main/java/io/coinos/MainActivity.java
index 3a5654a3..83b731a3 100644
--- a/android/app/src/main/java/io/coinos/MainActivity.java
+++ b/android/app/src/main/java/io/coinos/MainActivity.java
@@ -5,6 +5,8 @@ import android.view.View;
import android.view.WindowInsets;
import android.view.WindowManager;
import androidx.core.view.ViewCompat;
+import androidx.webkit.WebSettingsCompat;
+import androidx.webkit.WebViewFeature;
import com.getcapacitor.BridgeActivity;
import com.getcapacitor.Bridge;
@@ -25,6 +27,8 @@ import java.util.Arrays;
import io.coinos.nfcwriter.NfcWriterPlugin;
import io.coinos.hce.HcePlugin;
+import io.coinos.hce.HceApduService;
+import android.webkit.JavascriptInterface;
public class MainActivity extends BridgeActivity {
private NfcAdapter nfcAdapter;
@@ -52,6 +56,22 @@ public class MainActivity extends BridgeActivity {
});
}
+ // Enable WebAuthn/passkey support in WebView
+ if (WebViewFeature.isFeatureSupported(WebViewFeature.WEB_AUTHENTICATION)) {
+ WebSettingsCompat.setWebAuthenticationSupport(
+ webView.getSettings(),
+ WebSettingsCompat.WEB_AUTHENTICATION_SUPPORT_FOR_APP
+ );
+ }
+
+ // Expose HCE control to JavaScript
+ webView.addJavascriptInterface(new Object() {
+ @JavascriptInterface
+ public void setUrl(String url) { HceApduService.setUrl(url); }
+ @JavascriptInterface
+ public String getUrl() { return HceApduService.getUrl(); }
+ }, "CoinosHce");
+
// Other app setup
CookieManager cookieManager = CookieManager.getInstance();
cookieManager.setAcceptCookie(true);