我正在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 ();
}
注意:
Debug.Log(url_name)
代替Application.OpenURL()
进行测试。日志按预期显示了正确的URL,因此url_name似乎是我想要的值。问题:
为什么Application.OpenURL()
函数在键入字符串时有效,但在输入字符串变量时却无效?
答案 0 :(得分:1)
我遇到了这个问题。就我而言,它是由变量字符串末尾的换行符引起的。在类似情况下-尝试
url_name.Trim()
也许对您来说有点迟了,但它可能对其他人有帮助...