WebView
imToken 应用支持 DApp 的上下文环境。
imToken 内置的 WebView 使用平台的原生内核,行为与 MetaMask 完全兼容,同时还提供开源 SDK,帮助你改进 Web 应用。你可以随时将 DApp 无缝迁移到 imToken WebView 环境中,或者完善你的网站,使其在 imToken 应用中获得更好的体验。
WebView 指的是在 imToken 应用中运行 DApp 或 Web App 的上下文环境。
主要功能
Providers 相关
与 MetaMask 完全兼容,可直接迁移 Ethereum DApp 在 imToken 应用内使用。
基于 EIP1102 标准,所有 DApp 必须按照 EIP-1102 标准才能获取账户信息,进行其他操作。
兼容 Scatter,你可以基于 Scatter 开发 EOS DApp。对于
scatter-js
,支持不高于2.3.8
版本的scatterjs-core
。完整支持 EIP-3085,请查看 RPC 文档 了解更多。
不会在环境中自动注入
web3.js
,具体请查看 版本说明。初始化 Provider 等相关操作可参考 RPC 文档。
国际化
如果你的 DApp 应用支持多种语言,你可以通过以下方式确认当前的语言环境。(选择其中之一)
Request Header - 在用户使用 DApp 时,任何 HTTP 请求的头部都会增加
accept-language
字段,值取决于当前 imToken 应用的语言环境 (来自用户设置)。如:Accept-Language: zh-CN,zh;q=0.9,en-US;q=0.8,en;q=0.7,*;q=0.6
。URL Query - 页面在 imToken 内打开时 (使用 WebView),URL 的末尾会增加
query
参数,如:https://ens.token.im/?locale=en-US
。APIs - 通过 imToken 应用标准的 SDK 工具所提供的 API 来获取语言环境,请参考文档中的
getCurrentLanguage
。
调试
你可以在 DApp URL 上追加 Query 参数 __debug
来打开调试功能。当 DApp 正确的设置此参数后,WebView 会在页面的右下角中插入一个调试面板。(类似于 Chrome 的 Debug 面板)
DeepLink
如果你的 Web 应用运行于移动设备时,可以通过 DeepLink 调用并转向至 imToken 应用,在 imToken 应用 内部也可使用。具体请参考 DeepLink 文档。
Wallet Connect
如果你的 DApp 运行于桌面端或外部浏览器时,不便使用 DeepLink 调用 imToken 应用,此时 Wallet Connect 可以帮助你连接到 imToken 应用。学习如何使用 Wallet Connect 建立连接与通信,请浏览我们的 Wallet Connect 章节。
预加载配置
当你的 Web 应用 (包含 DApp) 处于加载中时,我们也支持提供更优雅的展示方案以确保您的 Web 应用始终有最好的用户体验。阅读 URL 预加载配置文档 了解更多。
SDK APIs
@consenlabs-fe/webview
是可以帮助你在 imToken 应用内获得更好体验的开源 SDK,我们可以借助此 SDK 完成对于 imToken WebView 的深度定制与开发。阅读 SDK API 文档 了解更多。
imToken WebView SDK 用于 imToken 应用内的功能支持,如果修改标题、调用原生 UI 等。
Ethereum RPCs
请在 RPC 文档 中查看我们所有支持的 Ethereum RPC 标准接口。
如何判断 imToken 环境
你可以直接使用
!!window.imToken
或是window.ethereum.isImToken
,返回ture
或是false
以确认当前是否处于 imToken 环境。直接使用 WebView SDK 。
如何开始
如果你还没有 DApp 的开发经验,可以试试阅读我们为你准备的 快速上手 文档。
Last updated