Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.
CloseFor some reason your suggested change could not be submitted. Please <a>try again</a> in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.
Closeurl | The URL to open. |
Opens the URL specified, subject to the permissions and limitations of your app’s current platform and environment. This is handled in different ways depending on the nature of the URL, and with different security restrictions, depending on the runtime platform.
Note: This method can be used to open more than just web pages, so it has important security implications you must be aware of.
Most commonly, this method is used to open HTTP (web page) URLs. If you provide a web page address as the parameter for this method, the web page is opened in the default browser. It will also bring the browser application to the front.
As well as the HTTP protocol used for web page addresses, there are other types of protocol that you can use in a URL such as file transfer (FTP), email (mailto), database access (JDBC), as well as many others which may be specific to certain platforms. On some platforms you can use OpenURL in Unity to do many different types of task.
For this reason, the OpenURL command can be unexpectedly powerful. On some platforms it is able to open local files, run commands, or open connections over any protocol that the platform and security sandbox supports.
The OpenURL method runs with the same permissions as your app itself. For example if your app is running as a WebGL player in a desktop web browser, it will not be able to access local files on the machine, because the WebGL platform itself runs inside a security sandbox which prevents that. If you are targeting other platforms such as standalone EXE app, your app runs with fewer security restrictions and no security sandbox, so this method is more powerful.
Therefore, you must be extremely careful that you do not provide a string to this function which could possibly be maliciously crafted or modified by a 3rd party.
On standalone platforms, you should consider this method to have similar security implications as an eval type function, present in many other programming languages.
If your app uses OpenURL to open URL strings which come from a 3rd party, or which are put together using any user-supplied data, the user-supplied data should be considered untrusted and may be used to run arbitrary code under the same permissions of your app itself.
You must sanitise the untrusted data and validate that it is the expected input for your application.
Android: Due security changes in Android 7.0 (More information), Application.OpenURL can no longer be used for opening local app files, you need to use FileProvider which allows you to share files with other applications.
iOS: Application.OpenURL cannot be used for opening local files.
Example:
using UnityEngine; using System.Collections;
public class ExampleClass : MonoBehaviour { void Start() { Application.OpenURL("http://unity3d.com/"); } }
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thanks for helping to make the Unity documentation better!