【问题标题】:Launching OSX app created with Unity from custom URL scheme从自定义 URL 方案启动使用 Unity 创建的 OSX 应用程序
【发布时间】:2021-05-03 08:23:15
【问题描述】:

我正在寻找一种方法来使用自定义 URL 方案从浏览器中启动使用 Unity 创建的 OSX 应用程序(独立)。
将自定义 URL 方案添加到 Info.plist 后,我​​可以成功启动应用程序。
我想知道如何获取 URL 中传递的参数。(例如 URLscheme://iwanttoreadthisdata)。
有没有办法做到这一点?

【问题讨论】:

    标签: macos unity3d deep-linking custom-url custom-scheme-url


    【解决方案1】:

    假设它是一个网络 GL 版本,您可以在此处找到信息: https://answers.unity.com/questions/1285359/how-to-read-url-parameters-from-unity-webgl-build.html

    相关资料指出这有点棘手,因为他们使用 JS 库在浏览器上下文中执行并将数据提取为统一库。

    https://github.com/Bunny83/UnityWebExamples/blob/master/Mandelbrot/URLParameters.cs

    这会查看正常的浏览器位置,并且 c# 访问/属性以强制 js 代码在运行时作为统一库执行。 浏览器JS代码,URL为window.location.href

    它使用 JS 解析该字符串中的数据,并将字典对象返回给统一 c# 代码。

    (我知道链接到这些可能会导致外部站点寻求答案,但代码有点长,复制/粘贴其他好的解释是多余的)。如果这不合理,其他模组可以编辑。

    【讨论】:

    • 非常感谢您的回答。但我的应用程序平台是 Mac OSX Standalone,而不是 WebGL。所以我无法从这些链接中找到解决方案。如果您有任何想法,请给我您的建议。
    • 嗯。自定义 URL 方案是否与 macOS 将处理程序与应用程序相关联的想法相同? EG:iOS / android 如何要求您使用应用打开 URL。我在 macOS 中依稀记得这一点。您可能需要查看统一公开的接口。 docs.unity3d.com/ScriptReference/Application.html 乍一看似乎是“absoluteURL”?否则,如果这些参数未包含在我提到的 url 字段中,我不确定操作系统是否会统一发送这些参数。
    • 是的,我想像 iOS 和 Android 应用一样启动我的 macOS 应用。通过使用本机插件(Objective-C++ 或 JAR),我在移动应用程序上实现了自定义 URL 方案功能。对于我的 Windows 独立应用程序,我创建了一个 reg 文件并使用 System.Environment.GetCommandLineArgs() 方法读取 URL 方案参数。不幸的是,macOS 不支持“absoluteURL”,所以如果为 macOS 实现 URL 方案功能,我是否需要 macOS(.bundle) 的本机插件?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-09
    • 1970-01-01
    • 2019-01-22
    相关资源
    最近更新 更多