web_lib

Common web application libraries
git clone https://radroots.dev/git/web_lib.git
Log | Files | Refs | LICENSE

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:
Mclient/package.json | 1+
Aclient/src/capacitor/browser.ts | 10++++++++++
Mclient/src/capacitor/index.ts | 8+++++++-
Mclient/src/types.ts | 7++++++-
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>; +}; +