【发布时间】: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