TON Connect for React
推荐用于React应用程序的SDK是UI React SDK。它是一个React组件,提供了与TON Connect交互的高级方式。
实现
1. 安装
要开始将TON Connect集成到您的DApp中,您需要安装@tonconnect/ui-react
包。您可以使用npm或yarn来实现这一目的:
- npm
- Yarn
- pnpm
npm i @tonconnect/ui-react
yarn add @tonconnect/ui-react
pnpm add @tonconnect/ui-react
2. TON Connect初始化
安装包之后,您应该为您的应用程序创建一个manifest.json
文件。有关如何创建manifest.json文件的更多信息,请参阅此处。
创建manifest文件后,将TonConnectUIProvider导入到您的Mini App的根目录,并传入manifest URL:
import { TonConnectUIProvider } from '@tonconnect/ui-react';
export function App() {
return (
<TonConnectUIProvider manifestUrl="https://<YOUR_APP_URL>/tonconnect-manifest.json">
{ /* Your app */ }
</TonConnectUIProvider>
);
}
3. 连接到钱包
添加TonConnectButton
。TonConnect按钮是初始化连接的通用UI组件。连接钱包后,它会变成钱包菜单。建议将其放置在应用程序的右上角。
export const Header = () => {
return (
<header>
<span>My App with React UI</span>
<TonConnectButton />
</header>
);
};
您还可以为按钮添加className和style属性。请注意,您不能给TonConnectButton传递子组件:
<TonConnectButton className="my-button-class" style={{ float: "right" }}/>
此外,您始终可以使用useTonConnectUI
hook和connectWallet方法手动初始化连接。
4. 重定向
如果您想在连接钱包后重定向用户至特定页面,您可以使用useTonConnectUI
hook和定制您的返回策略。
Telegram小程序
如果您想在连接钱包后重定向用户至Telegram Mini App,您可以定制TonConnectUIProvider
元素:
<TonConnectUIProvider
// ... other parameters
actionsConfiguration={{
twaReturnUrl: 'https://t.me/<YOUR_APP_NAME>'
}}
>
</TonConnectUIProvider>
5. UI自定义
要定制模态窗口的UI,您可以使用useTonConnectUI
hook和setOptions
函数。详见Hooks部分中关于useTonConnectUIhook的更多信息。
Hooks
如果您想在React应用程序中使用一些低级TON Connect UI SDK的特性,您可以使用@tonconnect/ui-react
包中的hook。
useTonAddress
使用它来获取用户当前的ton钱包地址。传递布尔参数isUserFriendly来选择地址的格式。如果钱包未连接,hook将返回空字符串。
import { useTonAddress } from '@tonconnect/ui-react';
export const Address = () => {
const userFriendlyAddress = useTonAddress();
const rawAddress = useTonAddress(false);
return (
userFriendlyAddress && (
<div>
<span>User-friendly address: {userFriendlyAddress}</span>
<span>Raw address: {rawAddress}</span>
</div>
)
);
};