feat(android): implement capacitor/keyboard plugin (#10125)

This commit is contained in:
aki-chang-dev
2025-02-12 11:28:56 +00:00
parent 1409408a66
commit 6730122108
6 changed files with 30 additions and 7 deletions
@@ -10,6 +10,7 @@ android {
apply from: "../capacitor-cordova-android-plugins/cordova.variables.gradle"
dependencies {
implementation project(':capacitor-app')
implementation project(':capacitor-keyboard')
implementation project(':capgo-inappbrowser')
}
@@ -3,6 +3,7 @@ package app.affine.pro
import android.os.Build
import android.os.Bundle
import androidx.annotation.RequiresApi
import com.capacitorjs.plugins.keyboard.KeyboardPlugin
import com.getcapacitor.BridgeActivity
import com.getcapacitor.plugin.CapacitorCookies
import com.getcapacitor.plugin.CapacitorHttp
@@ -17,7 +18,8 @@ class MainActivity : BridgeActivity() {
listOf(
CapacitorHttp::class.java,
CapacitorCookies::class.java,
InAppBrowserPlugin::class.java
InAppBrowserPlugin::class.java,
KeyboardPlugin::class.java,
)
)
}
@@ -5,5 +5,8 @@ project(':capacitor-android').projectDir = new File('../../../../../node_modules
include ':capacitor-app'
project(':capacitor-app').projectDir = new File('../../../../../node_modules/@capacitor/app/android')
include ':capacitor-keyboard'
project(':capacitor-keyboard').projectDir = new File('../../../../../node_modules/@capacitor/keyboard/android')
include ':capgo-inappbrowser'
project(':capgo-inappbrowser').projectDir = new File('../../../../../node_modules/@capgo/inappbrowser/android')
+2 -1
View File
@@ -17,7 +17,8 @@
"@capacitor/android": "^7.0.0",
"@capacitor/app": "^7.0.0",
"@capacitor/core": "^7.0.0",
"@capgo/inappbrowser": "^7.0.0",
"@capacitor/keyboard": "^7.0.0",
"@capgo/inappbrowser": "^7.1.0",
"@sentry/react": "^8.44.0",
"@toeverything/infra": "workspace:*",
"react": "^19.0.0",
@@ -1,6 +1,7 @@
import { AffineContext } from '@affine/core/components/context';
import { AppFallback } from '@affine/core/mobile/components/app-fallback';
import { configureMobileModules } from '@affine/core/mobile/modules';
import { VirtualKeyboardProvider } from '@affine/core/mobile/modules/virtual-keyboard';
import { router } from '@affine/core/mobile/router';
import { configureCommonModules } from '@affine/core/modules';
import { AuthService, DefaultServerService } from '@affine/core/modules/cloud';
@@ -16,6 +17,7 @@ import { configureBrowserWorkbenchModule } from '@affine/core/modules/workbench'
import { configureBrowserWorkspaceFlavours } from '@affine/core/modules/workspace-engine';
import { StoreManagerClient } from '@affine/nbstore/worker/client';
import { App as CapacitorApp } from '@capacitor/app';
import { Keyboard } from '@capacitor/keyboard';
import { InAppBrowser } from '@capgo/inappbrowser';
import { Framework, FrameworkRoot, getCurrentStore } from '@toeverything/infra';
import { OpClient } from '@toeverything/infra/op';
@@ -70,6 +72,19 @@ framework.impl(ClientSchemeProvider, {
},
});
framework.impl(VirtualKeyboardProvider, {
addEventListener: (event, callback) => {
Keyboard.addListener(event as any, callback as any).catch(e => {
console.error(e);
});
},
removeAllListeners: () => {
Keyboard.removeAllListeners().catch(e => {
console.error(e);
});
},
});
// setup application lifecycle events, and emit application start event
window.addEventListener('focus', () => {
frameworkProvider.get(LifecycleService).applicationFocus();
+6 -5
View File
@@ -230,7 +230,8 @@ __metadata:
"@capacitor/app": "npm:^7.0.0"
"@capacitor/cli": "npm:^7.0.0"
"@capacitor/core": "npm:^7.0.0"
"@capgo/inappbrowser": "npm:^7.0.0"
"@capacitor/keyboard": "npm:^7.0.0"
"@capgo/inappbrowser": "npm:^7.1.0"
"@sentry/react": "npm:^8.44.0"
"@toeverything/infra": "workspace:*"
"@types/react": "npm:^19.0.1"
@@ -4269,12 +4270,12 @@ __metadata:
languageName: node
linkType: hard
"@capgo/inappbrowser@npm:^7.0.0":
version: 7.2.16
resolution: "@capgo/inappbrowser@npm:7.2.16"
"@capgo/inappbrowser@npm:^7.1.0":
version: 7.1.6
resolution: "@capgo/inappbrowser@npm:7.1.6"
peerDependencies:
"@capacitor/core": ">=7.0.0"
checksum: 10/3a28379f1d52a880f60355093f6d672730d3716e351c993a0d755218909f91ffad9d2126b34bfcfa9d3b1db28053ca607ecc698983717610dab22fd2cf207d69
checksum: 10/3c3062626ef511937682ee170514f5335841c1ee12c7a743ed6a908a1325dad31ed68294999204e500978fc5a06b501193e66410f3d3dc09da3d42ad09320f09
languageName: node
linkType: hard