Bir DeHub mini uygulaması geliştirin — SDK ve manifest
Mini uygulama, DeHub içinde çalışan sıradan bir web sitesidir. DeHub üst kısmı uygulamanızın adı ve gerçek alan adıyla çizer, uygulamanız ise küçük bir SDK aracılığıyla DeHub ile konuşur. Aynı uygulama hiçbir değişiklik olmadan dehub.io’da ve DeHub telefon uygulamasında çalışır.
SDK’yı ekleyin
<script src="https://riftn.com/sdk/miniapp.js"></script>
<script>
// Hide the splash screen once your first screen is on.
dehub.ready();
const { user, client } = await dehub.context;
if (user) console.log('Hi', user.handle);
</script>
SDK tek bir genel değişken ekler: dehub. Her çağrı bir promise döndürür. DeHub dışında dehub.isInDehub() false olur ve çağrılar reddedilir; böylece aynı sayfayı tek başına da çalıştırabilirsiniz.
SDK yöntemleri
| Yöntem | Ne işe yarar |
|---|---|
dehub.ready() | Açılış ekranını gizler. |
dehub.close() | Uygulamanızı kapatır. |
dehub.context | Şunu döndürür: { user, location, client }. user şudur: { wallet, handle, displayName, avatarUrl } veya null (oturum kapalıyken). client şunları içerir: platform (web veya mobile), added, locale, theme ve safeAreaInsets. |
dehub.getCapabilities() | Bu barındırıcının desteklediği yöntemler. |
dehub.auth.getToken() | Kullanıcının kim olduğunu kanıtlayan, sunucunuz için imzalı bir token. İlk çağrı kullanıcıdan kimliğini paylaşmasını ister. Bakınız: DeHub ile giriş. |
dehub.actions.composePost({ text, embedUrl }) | DeHub düzenleyicisini metninizle ve isteğe bağlı olarak uygulamanıza geri dönen bir bağlantıyla açar (en fazla 500 karakter). |
dehub.actions.viewProfile({ handle }) | Bir DeHub profilini açar. |
dehub.actions.viewPost({ id }) | Bir DeHub gönderisini sayısal kimliğiyle açar. |
dehub.actions.openUrl(url) | Uygulamanızın dışında bir https bağlantısı açar. |
dehub.actions.addApp() | Kullanıcıdan uygulamanızı eklemesini ister; bu, bildirimlere de izin verir. |
dehub.actions.pay({ amount, memo }) | Kullanıcıdan size DHB ile ödeme yapmasını ister. Bakınız: Ödemeler. |
dehub.haptics.impact(style) | Telefonlarda kısa bir titreşim: light, medium veya heavy. |
dehub.on(event, fn) | Barındırıcı olaylarını dinler. Dinlemeyi durduran bir fonksiyon döndürür. |
DeHub bir isteği reddettiğinde promise, şu alana sahip bir hatayla reddedilir: code: signin (kullanıcının oturumu kapalı), rejected (kullanıcı hayır dedi), invalid (hatalı parametreler), rate_limited, busy (başka bir istek zaten açık), unsupported veya failed.
Manifest: dehub.json
Bu dosyayı şu adreste yayınlayın: https://your-domain/.well-known/dehub.json. Mağazaya uygulamanızın adını, hangi simgenin gösterileceğini ve sahibinin kim olduğunu söyler.
{
"app": {
"name": "Tip Jar",
"homeUrl": "https://tipjar.example.com/",
"iconUrl": "https://tipjar.example.com/icon-1024.png",
"subtitle": "Say thanks in DHB",
"description": "A tip jar for creators. One tap, paid straight to the creator's wallet.",
"category": "finance",
"tags": ["tips", "creators"],
"splashBackgroundColor": "#0B0B0B",
"screenshotUrls": ["https://tipjar.example.com/shot-1.png"],
"webhookUrl": "https://tipjar.example.com/api/dehub-webhook",
"permissions": ["wallet", "notifications"]
},
"ownership": {
"address": "0xYourDehubWallet",
"domain": "tipjar.example.com",
"signature": "0x…"
}
}
| Alan | Kurallar |
|---|---|
name | Zorunlu. En fazla 32 karakter. |
homeUrl | Zorunlu. https, manifestle aynı alan adında. |
iconUrl | Zorunlu. https. Saydamlık içermeyen 1024×1024 PNG. |
subtitle | En fazla 30 karakter. |
description | Önerilir. En fazla 170 karakter. |
category | Önerilir. Şunlardan biri: games, social, finance, utility, productivity, health-fitness, news-media, music, shopping, education, developer-tools, entertainment, art-creativity. |
tags | En fazla 5. Küçük harf, rakam veya tire; her biri en fazla 20 karakter. |
screenshotUrls | En fazla 3 https görseli. |
splashBackgroundColor | Şuna benzer bir onaltılık renk: #0B0B0B. |
webhookUrl | https. Şunları alır: webhook olayları. |
webhookEvents | İsteğe bağlı. Şunlardan biri: tip, follow, mention. Sahip cüzdanın hesap olayları, şuraya gönderilir: webhookUrl. |
permissions | Şunlardan herhangi biri: wallet, compose, notifications, camera. |
Alan adının size ait olduğunu kanıtlayın
Şu blok: ownership DeHub cüzdanınızın tam olarak bu mesaja attığı imzadır; ikinci satır alan adınızdır:
dehub mini app ownership
tipjar.example.com
Elle imzalamanız gerekmez. Şu sayfada dehub.io/apps/devbağlantınızı kontrol edin ve şuna basın: İmzala — yapıştırmaya hazır bir blok alırsınız. Ödemeler imzalayan cüzdana gider ve yalnızca o cüzdan sayfayı güncelleyebilir veya bildirim anahtarı oluşturabilir.
Akışta zengin kartlar
Biri bağlantınızı paylaştığında DeHub, uygulamanızı açan bir düğmeli kart gösterir. Bu etiketi sayfanın şu bölümüne ekleyin: <head> ( fc:miniapp etiketi de okunur):
<meta name="dehub:miniapp" content='{"version":"1","imageUrl":"https://tipjar.example.com/card-3x2.png","button":{"title":"Open Tip Jar","action":{"url":"https://tipjar.example.com/"}}}'>
DHB ile ödemeler
const { txHash, chainId, amount, receipt } = await dehub.actions.pay({
amount: 50, // DHB, whole numbers, up to 1,000,000
memo: 'Order #1042', // optional, 140 characters
});
// Send `receipt` to your server and verify it there.
await fetch('/api/orders/1042/paid', { method: 'POST', body: receipt });
DeHub tutarı, uygulamanızı ve cüzdanınızı gösterir, kullanıcı cüzdanında onaylar ve DeHub yanıt vermeden önce aktarımı zincir üzerinde (Base veya BNB Chain) kontrol eder. Dönen receipt şu alanları içeren imzalı bir tokendır: typ: "payment", sub (ödeyenin cüzdanı), aud (alan adınız), amount, token, chainId, txHash ve memo. Onu bir giriş tokenı gibi doğrulayın. Yalnızca imzalı manifesti olan kayıtlı uygulamalar ödeme alabilir.
Test modu. Kendi uygulamanızı DeHub'da sahibi olan cüzdanla açtığınızda ödemeler simüle edilir: zincirde hiçbir şey hareket etmez, makbuz ve payment webhook'u şunları taşır: test: true, chainId: 0 ve txHash ile başlayan test_. Üretimde test makbuzu için asla ücretli ürün teslim etmeyin.
Gönderme ve inceleme
- Listelenmemiş: gönderdikten hemen sonra. Uygulamanızın bir paylaşım bağlantısı vardır (
dehub.io/apps/your-slug) ve onu açan herkes için İncelenmedi rozetiyle çalışır. - Listelenmiş: incelemeden sonra. Uygulamanız DeHub uygulama mağazasında görünür.
- Doğrulanmış: güvenilir uygulamalar onay işareti alır ve öne çıkarılabilir.
İnceleyenler uygulamanın yüklendiğini, telefonda çalıştığını, sayfasıyla uyuştuğunu ve DeHub’ı taklit etmediğini kontrol eder. Manifesti güncelleyip yeniden göndermek sayfayı günceller.
Haftalık ödüller
DeHub her gece listelenmiş uygulamaları gerçek kullanıma göre sıralar: geri dönen, oturum açmış kişiler (%55), haftalık kullanıcılar (%35) ve uygulamanın ilk 14 gününde ek bir destek. Her pazartesi aylık DHB ödül havuzunun haftalık payı puana göre bölüştürülür. Katılmak için bir uygulamanın doğrulanmış bir sahip cüzdanına ve en az 3 geri dönen kullanıcıya ihtiyacı vardır. Sıralama ve geçmiş ödüller şuradadır: dehub.io/apps/dev.
DeHub'ı aç