# UniWebViewMessage

# Summary

Represents a message sent from web content back to Unity. Whenever you want to send some information from web view and handle it in Unity script, you can navigate the user with a link started with "uniwebview://". OnMessageReceived event will be fired for the web view with a UniWebViewMessage object. You can get the URL path and arguments from this message object.

# Properties Summary

Gets the raw message.

The url scheme of this UniWebViewMessage.

The path of this UniWebViewMessage.

The arguments of this UniWebViewMessage.

# Methods Summary

Initializes a new instance of the UniWebViewMessage struct.

# Properties

Gets the raw message. It is the original url which initialized this message.

Example

webView.OnMessageReceived += (view, message) => {
    print(message.RawMessage);
};
webView.Load("uniwebview://action?key=value&anotherKey=value");

// => "uniwebview://action?key=value&anotherKey=value"

The url scheme of this UniWebViewMessage. "uniwebview" was added to message scheme list by default. You can add your own scheme by using UniWebView.AddUrlScheme.

Example

webView.OnMessageReceived += (view, message) => {
    print(message.Scheme);
};
webView.Load("uniwebview://action?key=value&anotherKey=value");

// => "uniwebview"

// Use a customized scheme.
anotherWebView.AddUrlScheme("myscheme");
anotherWebView.OnMessageReceived += (view, message) => {
    print(message.Scheme);
};
anotherWebView.Load("myscheme://action");

// => "myscheme"

The path of this UniWebViewMessage.

NOTICE

This will be the decoded value for the path of original url.

Example

webView.OnMessageReceived += (view, message) => {
    print(message.Path);
};
webView.Load("uniwebview://action?key=value&anotherKey=value");
// => "action"

// Encoded path
webView.OnMessageReceived += (view, message) => {
    print(message.Path);
};
webView.Load("uniwebview://%e8%b7%af%e5%be%84?key=value&anotherKey=value");
// => "路径"

The arguments of this UniWebViewMessage. UniWebView will try to parse the url query into a dictionary.

When received url "uniwebview://yourPath?param1=value1&param2=value2", the args is a Dictionary with: Args["param1"] = value1, Args["param2"] = value2

NOTICE

Both the key and value will be url decoded from the original url.

Example

// Basic key-value args
webView.OnMessageReceived += (view, message) => {
    print(message.Args["key"]);
    print(message.Args["anotherKey"]);
};
webView.Load("uniwebview://action?key=value&anotherKey=anotherValue");
// => "value"
// => "anotherValue"

// With the same key
webView.OnMessageReceived += (view, message) => {
    print(message.Args["key"]);
};
var message = new UniWebViewMessage("uniwebview://sample_message?key=1&key=2");
// => "1,2"

// With encoded key and value
webView.OnMessageReceived += (view, message) => {
    print(message.Args["键"]);
};
var message = new UniWebViewMessage("uniwebview://sample_message?%E9%94%AE=%E5%80%BC);
// => "值"

# Methods

Initializes a new instance of the UniWebViewMessage struct.

Parameters
  • string rawMessage

    Raw message which will be parsed to a UniWebViewMessage.

Last Updated: 3/14/2021, 11:49:22 PM