Godot Version
4.3
Question
I exported my godot game to web (html5) and I want to read map data from a url parameter. So for example we would load the game like: index.html?map-data=map string here.
Here’s what I tried, but it doesn’t work:
func _ready():
# Check if we're running in a web environment (HTML5 export)
if Engine.has_singleton("JavaScript"):
var js = Engine.get_singleton("JavaScript")
var url = js.call("get_current_url") # Get the current page URL
var map_data_from_url = extract_map_data_from_url(url)
if map_data_from_url:
map_data = map_data_from_url
if validate_map_data(map_data):
print("Map data successfully loaded:\n%s" % map_data)
else:
print("Error: Invalid map data format.")
else:
print("Error: No valid map-data URL parameter found.")
else:
print("Error: JavaScript is not available (likely not running in a web environment).")
# Function to extract map data from the URL
func extract_map_data_from_url(url: String) -> String:
var query_start = url.find("?")
if query_start == -1:
return "" # No query string found
var query_string = url.substr(query_start + 1, url.length() - query_start - 1)
var params = query_string.split("&")
for param in params:
var key_value = param.split("=")
if key_value.size() == 2 and key_value[0] == "map-data":
return key_value[1]
return ""