anydrop/web/capacitor.config.ts
ordinarthur 9674b19590
All checks were successful
Build & Deploy / build-and-deploy (push) Successful in 1m14s
feat(ios): Capacitor shell + Share Extension scaffold
Phase 4 (mobile) kickoff. Ships the native iOS wrapper that lets users
share photos/videos from the iOS Share Sheet into AnyDrop — the one
thing the PWA alone cannot do on iOS because Apple still ignores the
Web Share Target API.

Architecture:
- web/ios/ — Capacitor-generated Xcode project pointing the WKWebView
  at https://anydrop.arthurbarre.fr (real web app; only native code
  is the share-in path, so no "thin wrapper" App Store concern).
- AnyDropShare (Share Extension target) — stashes selected items into
  an App Group shared container then opens anydrop://share.
- SharedInboxPlugin (custom Capacitor plugin) — drains that container
  from JS after the URL fires, returning base64 blobs.
- web/src/lib/nativeShare.ts — bridge that rehydrates File objects and
  routes them into the existing /share page flow (same one Android uses).

Xcode-side target registration + signing isn't scriptable; runbook is
in docs/ios-setup.md.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-20 15:59:51 +02:00

21 lines
572 B
TypeScript

import type { CapacitorConfig } from "@capacitor/cli";
const config: CapacitorConfig = {
appId: "fr.arthurbarre.anydrop",
appName: "AnyDrop",
webDir: "dist",
server: {
// The iOS app is a thin shell around the production PWA. The real value
// vs. a web clip is the native Share Extension (see ios/App/AnyDropShare),
// which lets users send photos/videos from the iOS Photos share sheet.
url: "https://anydrop.arthurbarre.fr",
cleartext: false,
},
ios: {
scheme: "AnyDrop",
contentInset: "always",
},
};
export default config;