commit 04bd0ad095b5291d2da043cd9d3c1717fd88853b
parent 9ec167714affa617b8c4cf0c0f0883d543bc964f
Author: triesap <137732411+triesap@users.noreply.github.com>
Date: Fri, 23 Aug 2024 12:55:04 +0000
client: add capacitor browser api
Diffstat:
4 files changed, 24 insertions(+), 2 deletions(-)
diff --git a/client/package.json b/client/package.json
@@ -8,6 +8,7 @@
"dev": "tsc -w"
},
"dependencies": {
+ "@capacitor/browser": "^6.0.0",
"@capacitor/core": "^6.1.2",
"@capacitor/device": "^6.0.0",
"@capacitor/dialog": "^6.0.0",
diff --git a/client/src/capacitor/browser.ts b/client/src/capacitor/browser.ts
@@ -0,0 +1,10 @@
+import { Browser } from '@capacitor/browser';
+import type { IClientBrowser } from '../types';
+
+export class CapacitorClientBrowser implements IClientBrowser {
+ public async open(url: string): Promise<void> {
+ try {
+ await Browser.open({ url });
+ } catch (e) { };
+ }
+}
diff --git a/client/src/capacitor/index.ts b/client/src/capacitor/index.ts
@@ -1,7 +1,8 @@
import { Capacitor } from "@capacitor/core";
-import type { IClient, IClientDevice, IClientDialog, IClientHaptics, IClientKeystore, IClientNetwork, IClientPlatform, IClientPreferences, IClientShare, IClientWifi } from "../types";
+import type { IClient, IClientBrowser, IClientDevice, IClientDialog, IClientHaptics, IClientKeystore, IClientNetwork, IClientPlatform, IClientPreferences, IClientShare, IClientWifi } from "../types";
import { parse_platform } from "../utils";
+import { CapacitorClientBrowser } from "./browser";
import { CapacitorClientDevice } from "./device";
import { CapacitorClientDialog } from "./dialog";
import { CapacitorClientHaptics } from "./haptics";
@@ -21,6 +22,7 @@ export class ClientCapacitor implements IClient {
private _share: IClientShare = new CapacitorClientShare();
private _wifi: IClientWifi = new CapacitorClientWifi();
private _dialog: IClientDialog = new CapacitorClientDialog();
+ private _browser: IClientBrowser = new CapacitorClientBrowser();
public get platform() {
return this._platform;
@@ -57,4 +59,8 @@ export class ClientCapacitor implements IClient {
public get dialog() {
return this._dialog;
}
+
+ public get browser() {
+ return this._browser;
+ }
};
\ No newline at end of file
diff --git a/client/src/types.ts b/client/src/types.ts
@@ -11,6 +11,7 @@ export type IClient = {
share: IClientShare;
wifi: IClientWifi;
dialog: IClientDialog;
+ browser: IClientBrowser;
};
export type IClientPlatform = `androiď` | `ios` | `web`;
@@ -90,9 +91,13 @@ export type IClientDialogPrompt = {
input_text?: string;
};
-
export type IClientDialog = {
alert(message: string): Promise<boolean>;
confirm(message: string): Promise<boolean>;
prompt(opts: IClientDialogPrompt): Promise<string | false>;
};
+
+export type IClientBrowser = {
+ open(url: string): Promise<void>;
+};
+