Muska-Ami / NyaLCF

NyaLCF - Nya LoCyanFrp! Launcher | 乐青映射启动器
https://nyalcf.1l1.icu
MIT License
54 stars 6 forks source link

支持深度链接启动 #37

Closed Muska-Ami closed 2 months ago

Muska-Ami commented 8 months ago

如题,支持官网的深度链接调用启动 目前官方格式为

locyanfrp://:frp_token/:proxy_id
Muska-Ami commented 8 months ago

需要帮助,由于我不会CPP所以没法写接收的函数

ltzXiaoYanMo commented 5 months ago
  void _parseDeepLink(String deepLink) {
    if (deepLink.isNotEmpty) {
      // 如果有深度链接,则提取数据
      Uri uri = Uri.parse(deepLink);
      String scheme = uri.scheme;
      if (scheme == 'locyanfrp') {
        // 如果是你指定的scheme(locyanfrp),则提取frp_token和proxy_id
        String frpToken = uri.pathSegments.isNotEmpty ? uri.pathSegments[0] : '';
        String proxyId = uri.pathSegments.length > 1 ? uri.pathSegments[1] : '';
        setState(() {
          _deepLinkData = 'FRP Token: $frpToken\nProxy ID: $proxyId';
        });
      }
    }
  }

我不知道这样行不行,放这看看吧(

Muska-Ami commented 5 months ago
  void _parseDeepLink(String deepLink) {
    if (deepLink.isNotEmpty) {
      // 如果有深度链接,则提取数据
      Uri uri = Uri.parse(deepLink);
      String scheme = uri.scheme;
      if (scheme == 'locyanfrp') {
        // 如果是你指定的scheme(locyanfrp),则提取frp_token和proxy_id
        String frpToken = uri.pathSegments.isNotEmpty ? uri.pathSegments[0] : '';
        String proxyId = uri.pathSegments.length > 1 ? uri.pathSegments[1] : '';
        setState(() {
          _deepLinkData = 'FRP Token: $frpToken\nProxy ID: $proxyId';
        });
      }
    }
  }

我不知道这样行不行,放这看看吧(

这只是解析了Uri

ltzXiaoYanMo commented 5 months ago
  void _parseDeepLink(String deepLink) {
    if (deepLink.isNotEmpty) {
      // 如果有深度链接,则提取数据
      Uri uri = Uri.parse(deepLink);
      String scheme = uri.scheme;
      if (scheme == 'locyanfrp') {
        // 如果是你指定的scheme(locyanfrp),则提取frp_token和proxy_id
        String frpToken = uri.pathSegments.isNotEmpty ? uri.pathSegments[0] : '';
        String proxyId = uri.pathSegments.length > 1 ? uri.pathSegments[1] : '';
        setState(() {
          _deepLinkData = 'FRP Token: $frpToken\nProxy ID: $proxyId';
        });
      }
    }
  }

我不知道这样行不行,放这看看吧(

这只是解析了Uri

他能解析就是成功,怎么提取下辈子再说(

Muska-Ami commented 4 months ago

https://docs.flutter.dev/ui/navigation/deep-linking

Muska-Ami commented 2 months ago

https://pub.dev/packages/app_links

Muska-Ami commented 2 months ago

当前的实现感觉仍有不足,直接调用会新开一个启动器 进程,造成不必要的占用,应该给应用加一个RPC接口,先检测是否存在进程再判断是否应该启动GUI,否则直接使用现有进程执行操作

ltzXiaoYanMo commented 2 months ago

当前的实现感觉仍有不足,直接调用会新开一个启动器 进程,造成不必要的占用,应该给应用加一个RPC接口,先检测是否存在进程再判断是否应该启动GUI,否则直接使用现有进程执行操作

强制给自己添加难度是吧,那我先不卷了(?