【问题标题】:Unity C# Application.OpenURL not working with variable inputUnity C# Application.OpenURL 不适用于变量输入
【发布时间】:2017-12-15 19:57:17
【问题描述】:

我正在 Unity 中构建一个应用程序,并且我有一个按钮,该按钮使用 Application.OpenURL() 在单击时将用户带到某个页面。到目前为止,我一直在使用双引号中完整输入的 url 名称作为 OpenURL 函数的参数,并且它按我的预期工作。当我按下按钮时,页面在浏览器中打开。

为了合并多个可能的 url,我将参数更改为一个名为 url_name 的字符串变量。由于此更改,当按下同一个按钮时不会发生任何事情。我的代码目前如下所示:

IEnumerator alertPopUp(string metaData_Content){

        if (alertDelay)
        {
            yield return new WaitForSeconds (alertDelayLength);
        }

        string[] tokens = metaData_Content.Split (',');
        string sign_name = tokens [0];
        string url_name = tokens [1];

        string template = "You discovered {0}";
        string data = sign_name;
        string message = string.Format(template, data);


        MNPopup popup = new MNPopup ("Honorary Chicago", message);
        popup.AddAction ("Find out more!", () => {Application.OpenURL(url_name);});
        popup.AddAction ("Not now", () => {Debug.Log("action 2 action callback");});
        popup.AddDismissListener (() => {Debug.Log("dismiss listener");});
        popup.Show ();
}

注意事项:

  • 以 MNPopup 开头的块利用了我从资产商店获得的一个插件,该插件可以构建格式化的弹出窗口。我认为这与问题无关,尤其是当我输入字符串时脚本按预期工作。
  • 我尝试用Debug.Log(url_name) 代替Application.OpenURL() 进行测试。日志按预期显示了正确的 url,因此 url_name 似乎是我想要的值。

问题:

为什么Application.OpenURL()函数在我输入字符串时工作,但在输入字符串变量时却不工作?

【问题讨论】:

  • 您是否有一些示例数据在您构建它时记录下来,以及在您手动输入时记录?确保构造的 URL 以协议模式开头,否则正确遵循 URL 格式
  • @Kroltan 您能解释一下示例数据的含义吗?并且构造的 URL 是完整的格式化 URL

标签: c# unity3d coroutine


【解决方案1】:

我遇到了这个问题。在我的情况下,它是由变量字符串末尾的换行符引起的。在类似的情况下 - 尝试 url_name.Trim() 也许对你来说有点晚了,但它可能会帮助别人......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    相关资源
    最近更新 更多