url | 要打开的 URL。 |
打开指定的 URL,受应用当前平台和环境的权限和限制影响。
根据 URL 的性质以及运行时平台的不同安全限制,其处理方式也不同。
注意:OpenURL
方法不仅可以用来打开网页;因此,在使用此方法之前,请确保您了解其中涉及的安全隐患。此方法用于打开 HTTP 和 HTTPS(网页)URL。如果将网页地址作为此方法的参数提供,则网页将在默认浏览器中打开,并在前台显示浏览器应用程序。
除了用于 Web 浏览器的 HTTP 协议外,您还可以使用 URL 中的其他协议,例如文件传输 (FTP)、电子邮件 (mailto)、数据库访问 (JDBC) 和其他特定于平台的协议。在某些平台上,您可以使用 OpenURL
在 Unity 中执行不同类型的任务。OpenURL
命令功能强大,在某些平台上,它甚至可以打开本地文件、运行命令以及通过平台和安全沙箱支持的任何协议打开连接。OpenURL
方法以与您的应用本身相同的权限运行。例如,如果您的应用作为 WebGL 播放器在桌面 Web 浏览器中运行,则它无法访问机器上的本地文件,因为 WebGL 平台在阻止此操作的安全沙箱内运行。但是,此方法在桌面平台 exe 应用等平台上功能更强大,因为它在没有安全沙箱的情况下以更少的安全限制运行。
重要:请谨慎操作,切勿将字符串传递给 OpenURL 函数,以防止第三方软件进行任何恶意尝试。
在桌面平台上,您应将此方法视为与大多数编程语言中存在的 eval 类型函数具有类似的安全隐患。
如果您的应用使用 OpenURL 打开来自第三方的 URL 字符串,或使用任何用户提供的数据组合而成的字符串,则应将该数据视为不受信任,并用于以您的应用的相同权限运行任意代码。您还必须清理不受信任的数据并进行验证,以确保其生成应用所需的输入。
WebGL:从 2019.4.25f1、2020.3.5f1、2021.1.2f1 和 2021.2.0a11 版本开始,Application.OpenURL
会在新浏览器选项卡中打开 URL。在早期版本中,Application.OpenURL
会在同一浏览器选项卡中打开 URL,这会导致活动 Unity 应用程序终止。要为任何版本自定义此行为,请使用自定义 .jslib 和 C# 方法实现自己的打开 URL 函数,而不是使用 Application.OpenURL
。有关更多信息和示例,请参阅 与浏览器脚本交互。
Android:由于 Android 7.0 中的安全更改(更多信息),Application.OpenURL
无法再用于打开本地应用文件。要与其他应用程序共享文件,必须使用 (FileProvider)。
iOS:Application.OpenURL
无法用于打开本地文件。
示例
using UnityEngine; using System.Collections;
public class ExampleClass : MonoBehaviour { void Start() { Application.OpenURL("http://unity3d.com/"); } }