#tauri-app #tauri-plugin #url #applications #handler #default #register

sys tauri-plugin-deep-link

将您的 Tauri 应用程序设置为 URL 的默认处理器

22 个版本

2.0.0-rc.1 2024 年 8 月 17 日
2.0.0-beta.102024 年 7 月 31 日
2.0.0-beta.32024 年 3 月 21 日
2.0.0-alpha.52023 年 12 月 20 日
0.1.0 2023 年 2 月 27 日

GUI 中排名第 246

Download history 905/week @ 2024-05-03 948/week @ 2024-05-10 1531/week @ 2024-05-17 1272/week @ 2024-05-24 1216/week @ 2024-05-31 1310/week @ 2024-06-07 1639/week @ 2024-06-14 1390/week @ 2024-06-21 1196/week @ 2024-06-28 1952/week @ 2024-07-05 1772/week @ 2024-07-12 1392/week @ 2024-07-19 1812/week @ 2024-07-26 1730/week @ 2024-08-02 2714/week @ 2024-08-09 2411/week @ 2024-08-16

每月下载量 8,941

Apache-2.0 OR MIT

81KB
615

plugin-deep-link

将您的 Tauri 应用程序设置为 URL 的默认处理器。

安装

此插件需要至少 Rust 版本 1.75

我们可以推荐三种通用的安装方法。

  1. 使用 crates.io 和 npm(最简单,需要您信任我们的发布管道已正常工作)
  2. 直接从 Github 使用 git 标签/修订哈希拉取源代码(最安全)
  3. 使用 Git 子模块在您的 tauri 项目中安装此仓库,然后使用文件协议导入源代码(最安全,但使用不便)

通过在您的 Cargo.toml 文件中添加以下内容来安装 Core 插件

src-tauri/Cargo.toml

[dependencies]
tauri-plugin-deep-link = "2.0.0-rc"
# alternatively with Git:
tauri-plugin-deep-link = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" }

您可以使用您首选的 JavaScript 包管理器安装 JavaScript 客户端绑定

注意:由于大多数 JavaScript 包管理器无法从 git monorepos 安装包,我们为每个插件提供了只读镜像。这使得安装选项 2 更易于使用。

pnpm add @tauri-apps/plugin-deep-link
# or
npm add @tauri-apps/plugin-deep-link
# or
yarn add @tauri-apps/plugin-deep-link

# alternatively with Git:
pnpm add https://github.com/tauri-apps/tauri-plugin-deep-link#v2
# or
npm add https://github.com/tauri-apps/tauri-plugin-deep-link#v2
# or
yarn add https://github.com/tauri-apps/tauri-plugin-deep-link#v2

设置

Android

对于 应用链接,您需要一个具有 .well-known/assetlinks.json 端点的服务器,该端点必须返回给定格式的文本响应

[
  {
    "relation": ["delegate_permission/common.handle_all_urls"],
    "target": {
      "namespace": "android_app",
      "package_name": "$APP_BUNDLE_ID",
      "sha256_cert_fingerprints": [
        $CERT_FINGERPRINT
      ]
    }
  }
]

其中 $APP_BUNDLE_ID 是在 tauri.conf.json > tauri > bundle > identifier 中定义的值,用 - 替换为 _,而 $CERT_FINGERPRINT 是您应用签名证书的 SHA256 指纹列表,更多信息请参见 验证 Android Applinks

iOS

对于 通用链接,您需要一个服务器,它必须有一个 .well-known/apple-app-site-association 端点,该端点必须返回指定格式的文本响应

{
  "applinks": {
    "details": [
      {
        "appIDs": [ "$DEVELOPMENT_TEAM_ID.$APP_BUNDLE_ID" ],
        "components": [
          {
            "/": "/open/*",
            "comment": "Matches any URL whose path starts with /open/"
          }
        ]
      }
    ]
  }
}

其中 $DEVELOPMENT_TEAM_ID 是在 tauri.conf.json > tauri > bundle > iOS > developmentTeamTAURI_APPLE_DEVELOPMENT_TEAM 环境变量中定义的值,而 $APP_BUNDLE_ID 是在 tauri.conf.json > tauri > bundle > identifier 中定义的值。更多信息请参见 applinks.details

更多信息请参见 支持关联域名

配置

tauri.conf.json > plugins > deep-link 下,配置您想要与应用程序关联的域名(移动端)和方案(桌面端)

{
  "plugins": {
    "deep-link": {
      "mobile": [
        { "host": "your.website.com", "pathPrefix": ["/open"] },
        { "host": "another.site.br" }
      ],
      "desktop": {
        "schemes": ["something", "my-tauri-app"]
      }
    }
  }
}

用法

首先,您需要将核心插件与 Tauri 进行注册

src-tauri/src/main.rs

fn main() {
    tauri::Builder::default()
        .plugin(tauri_plugin_deep_link::init())
        .run(tauri::generate_context!())
        .expect("error while running tauri application");
}

之后,所有插件 API 都可以通过 JavaScript 客户端绑定使用

import { onOpenUrl } from "@tauri-apps/plugin-deep-link";
await onOpenUrl((urls) => {
  console.log("deep link:", urls);
});

请注意,插件仅在 macOS、iOS 和 Android 上发出事件。在 Windows 和 Linux 上,操作系统会使用 URL 作为 CLI 参数启动您应用的新的实例。如果您希望您的应用在 Windows & Linux 上的行为与其他平台相似,可以使用 single-instance 插件。

贡献

接受 PR。请在提交 pull request 之前确保阅读贡献指南。

贡献者

CrabNebula Impierce

合作伙伴

CrabNebula

有关赞助商的完整列表,请访问我们的 网站Open Collective

许可证

代码:版权所有 © 2015 - 现在 - The Commons Conservancy 中的 Tauri 项目。

适用时采用 MIT 或 MIT/Apache 2.0 许可证。

依赖

~17–58MB
~891K SLoC