変更ごとに三度
× 変更のたびに
71個の機能があり、そのうち61個は実際のスマホのデモアプリで動きます。
型定義とドキュメントが揃い、iOSでもAndroidでも同じように使えます。いつものJavaScriptから呼び出せます。
ウェブ、iOS、Android。アプリを更新しない利用者も、最新のデプロイ内容を使います。
従来は変更ごとに三度公開し、審査を待ちます。BDKなら一度のデプロイです。
× 変更のたびに
アイコンやネイティブ機能の変更には、ストア向けビルドが必要です。
アプリ審査での扱いいつもの開発ツールを選んでください。読み込む資料、書き込むファイル、反応するスマホ。これが連携の全体です。
環境変数の認証情報を使い、リンク先の投稿を開くプッシュ通知をサーバーから送ってください
環境変数の認証情報でサーバーからディープリンクを送信
環境変数の認証情報を使い、サーバーからのみプッシュ通知を送信します。通知から投稿42を開けます。
1import { sendPushNotification } from "@thebdk/native/server/onesignal";2 3const result = await sendPushNotification({4 message: "New reply on your post",5 title: "Inbox",6 subtitle: "From @jess",7 imageUrl: "https://cdn.example.com/preview.png",8 onLoadUrl: "https://app.example.com/posts/42",9 urlParams: [{ key: "ref", value: "push" }],10 data: { postId: 42, kind: "reply" },11 subscriptionIds: ["a1b2c3d4-1111-2222-3333-444455556666"]12});このアプリに@thebdk/nativeを組み込んでください。デプロイ後、BDKでパッケージ化したネイティブアプリ内でサイトが動くときにはカメラとFace IDを使え、通常のウェブアプリはブラウザで引き続き動くようにします。
まずhttps://docs.thebdk.com/llms-full.txtと、追加する各機能のページを読んでください。資料に載っているヘルパー名、イベント名、オプションキーだけを使い、APIを作り出さないでください。
次に:
1. @thebdk/nativeパッケージを追加します。
2. ブラウザで安全に読み込む形で、src/lib/bdk.tsに共有クライアントを作成します:
import { createBdkNative } from "@thebdk/native/browser";
export const bdk = createBdkNative();
3. 型付きで名前空間別のヘルパーだけを使って機能を作ります:bdk.media.*、bdk.ui.*、
bdk.navigation.*、bdk.iap.*、bdk.auth.*、bdk.location.*、bdk.device.*、bdk.share.*、
bdk.permissions.*。
4. 利用者が操作する機能を呼び出す前にbdk.on(event, cb)で購読します。結果は
戻り値のPromiseではなくイベントで届きます。
5. ブラウザでは呼び出しは実行されず、triggered: falseを返します。
!result.triggeredで分岐し、実際に動くウェブ用の代替動作を残してください。Lovableのプレビューとウェブの
ビルドの両方が引き続き動くようにします。これをスキップやnot_nativeと説明せず、
ウェブUIでネイティブイベントを待たないでください。
6. @thebdk/native/server/*の機能はすべてバックエンド専用です。認証情報は環境変数から
読み込み、クライアントのコードにキーやサーバー用の読み込みを入れないでください。
iOSやAndroidのアプリ作成、サイトのアプリ化、ビルドへの署名、ストアへの提出、プレビューでのネイティブ動作確認を完了したと主張しないでください。
最後に、変更したファイル、追加したウェブ用の代替動作、次の引き継ぎを示してください。このアプリをURLに公開し、thebdk.comでそのURLを接続して、BDKがiOSとAndroidのビルドをパッケージ化して署名します。その後、BDKでパッケージ化したアプリ内でネイティブ機能をテストします。お客様が着くと思っていた場所へ。
販売中BDKでパッケージ化したアプリで実行中
カメラとFace IDを追加します。ウェブのプレビューは代替動作で引き続き動きます。
npm install @thebdk/nativeを一度読み込み、ほかは変更しません。bdk.on(…)で購読するようエージェントに伝えます。コードがなくても、インストールするものはありません。ダッシュボードでアプリのURLを接続すれば、同じビルドができあがります。
機械が読める資料:llms.txt。エージェントが取得するファイルです。 エージェントでの使い方 →
SDKのインストールは必要に応じて
コードがあるならnpm install @thebdk/nativeを追加します。依存パッケージはひとつで、すべて型付きです。コードがなければインストールは不要で、ステップ3だけで済みます。
必要な箇所でネイティブ機能を呼び出す
カメラ、生体認証、購入、プッシュ通知を、既存のJavaScriptから。ひとつのビルドが、ブラウザでもApp Storeから入れたアプリでも動きます。
URLを接続して、ストア向けビルドを受け取る。
ダッシュボードにURLを貼り付けます。BDKが両方のアプリをビルドして署名します。その後は、デプロイのたびにすべてのスマホが更新されます。
import { createBdkNative } from "@thebdk/native/browser";
const bdk = createBdkNative();
await bdk.ready();
// Results arrive on events — subscribe, then call.
bdk.on("photoCaptured", (photo) => upload(photo.fileUrl));
await bdk.media.capturePhoto();
// Native UI, one line.
await bdk.ui.showBanner({
title: "Saved",
description: "Photo uploaded."
});Appleは、単なるウェブサイトのアプリを却下します。プッシュ通知、Face ID、購入、共有がアプリらしさを加えます。承認は誰も保証できません。ライブデモはBDKでパッケージ化したアプリなので、ご自身で確かめてください。
いいえ。アプリは公開中のサイトを表示します。ウェブサイトのデプロイはウェブ型アプリの通常の動作で、コードを注入する裏技ではありません。アイコン、利用権限、実行環境の更新など、ネイティブ側の変更にはストア審査が必要です。その場合、BDKが署名済みの新しいビルドをお渡しし、あなたが提出します。
公開中のウェブアプリを、ストアで配布する実際のアプリ内に全画面で表示する、iOSとAndroid用のネイティブ実行環境です。型付きJavaScript SDKの@thebdk/nativeが、コードをカメラ、生体認証、購入、プッシュ通知などの端末機能につなぎます。BDKがストア向けのアプリをパッケージ化して署名し、あなたが手順の案内に沿って自分の開発者アカウントから提出します。ウェブアプリは通常のウェブアプリのまま、自分でホストします。
いいえ。そのまま動きます。ネイティブ機能が必要な箇所だけ@thebdk/nativeを追加してください。ほかは変更せず、同じビルドで通常のウェブサイトも引き続き動きます。
PWAはApp Storeに掲載できず、アプリ内購入で販売もできません。Capacitorでは自分で管理するネイティブプロジェクトを受け取るため、ビルド、署名、再ビルドはずっと自分の仕事です。BDKは実行環境を管理し、パッケージ化、署名、OSの変化への対応を引き受けます。