首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Walletconnect不保持连接。

Walletconnect不保持连接。
EN

Stack Overflow用户
提问于 2022-05-17 11:52:44
回答 1查看 1.4K关注 0票数 1

我正在使用dart将我的应用程序连接到Metamask。扫描QR代码或移动深链接所有工作良好,并立即连接到钱包。

我面临的问题是,当我重新启动应用程序,我的钱包不再连接到应用程序。每次我不得不用一个深链接/QR代码重新连接我的钱包到应用程序。

即使在重新启动应用程序之后,还有什么方法可以与钱包保持连接吗?

我就是这样连接到钱包的

代码语言:javascript
复制
               final connector = WalletConnect(
                      bridge: 'https://bridge.walletconnect.org',
                      clientMeta: const PeerMeta(
                        name: 'WalletConnect',
                        description: 'WalletConnect Developer App',
                        url: 'https://walletconnect.org',
                        icons: [
                          'https://gblobscdn.gitbook.com/spaces%2F-LJJeCjcLrr53DcT1Ml7%2Favatar.png?alt=media'
                        ],
                      ),
                    );

                    // Subscribe to events
                    connector.on('connect', (session) => print(session));
                    connector.on('session_update', (payload) => print(payload));
                    connector.on('disconnect', (session) => print(session));

                   // Create a new session
                    if (!connector.connected) {
                      final session = await connector.createSession(
                        chainId: 4160,
                        onDisplayUri: (uri) {
                          launchUrl(Uri.parse(uri));
                        },
                      );

                      print(session);
                    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-24 03:17:39

我使用存储包来解决这个问题。

首先,初始化钱包连接存储。

代码语言:javascript
复制
 WalletConnectSecureStorage sessionStorage = WalletConnectSecureStorage();

之后,当您成功地连接到钱包连接(因为我使用了dart),您将从钱包连接实例中获得dart

并将WalletConnectSession存储到sessionStorage,如下所述

代码语言:javascript
复制
sessionStorage.store(walletConnect.session)

完成此操作后,会话将成功地存储在sessionStorage中。

现在,在sessionStorage initState中,我们将从获取会话,并将其分配给walletConnect实例,如下所示

代码语言:javascript
复制
  final session = await UserDataUtils.sessionStorage.getSession();

    // Create a connector
    walletConnect = WalletConnect(
      bridge: 'https://bridge.walletconnect.org',
      session: session,
      sessionStorage: sessionStorage,
      clientMeta: const PeerMeta(
      name: 'WalletConnect',
      description: 'WalletConnect Developer App',
      url: 'https://walletconnect.org',
      icons: [
      'https://gblobscdn.gitbook.com/spaces%2F-LJJeCjcLrr53DcT1Ml7%2Favatar.png?alt=media'
    ],
  ),
);

您还可以注册侦听器。

代码语言:javascript
复制
walletConnect.registerListeners(onConnect: (status) {
      print(status);
    }, onDisconnect: () {
      print('Disconnect');
    });
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72273585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档