unity WebGL获取浏览器地址

创建一个.txt文件更改为 .jslib格式 的文件放在Plugin文件夹下

var plugin = {
   
//获取地址栏的URL
 StringReturnValueFunction: function () {
    var returnStr = window.top.location.href;
    var  title =decodeURI(returnStr);
    var bufferSize = lengthBytesUTF8(title) + 1;
    var buffer = _malloc(bufferSize);
    stringToUTF8(title, buffer, bufferSize);
    return buffer;
  }
  
};
mergeInto(LibraryManager.library, plugin);

在Unity 创建脚本进行使用

using UnityEngine;
using System.Runtime.InteropServices;
//区分内外网
public enum LineType
{
    OutLine,
    OnLine,
    None
}
public class GameEnter : MonoBehaviour
{
    [DllImport("__Internal")]
    private static extern string StringReturnValueFunction();//获取地址栏的URL

    public string UrlMsg = "地址参数";

    public OpenController OpenController;
   
    public LineType lineType;

   
    private void Start()
    {
        GetUrl();
    }
    /// <summary>
    /// 获取地址栏的URL
    /// </summary>
    private void GetUrl()
    {
        try
        {
            UrlMsg = StringReturnValueFunction();//调用JSLib文件中的方法
        }
        catch (System.Exception e)
        {
            UrlMsg = "[catch]" + e.Message;
        }
        Debug.Log("地址栏的地址是:"+UrlMsg);
//---------------------------下面是区分内网外的内容-----------------------------------------
        if (UrlMsg.Contains("XX.XX.XX.XX"))
        {
            lineType = LineType.OutLine;
        }
        else if (UrlMsg.Contains("XX.XX.XX.XX"))
        {
            lineType = LineType.OnLine;
        }
        else
        {
            lineType = LineType.None;           
        }
        if (lineType == LineType.None)
        {
            Debug.Log("本地模式,虚拟一个URL地址进行测试");
            UrlMsg = "本地测试的可在unity打开测试的地址";//自己填写
            DealWithUrl(UrlMsg);
        }
        else
        {
            Debug.Log("OutLine内网或外网模式进行测试");
            DealWithUrl(UrlMsg);
        }
    }
    /// <summary>
    /// 处理URL地址 获取参数
    /// </summary>
    /// <param name="urlMsg"></param>
    private void DealWithUrl(string urlMsg)
    {
        string[] UrlAndArg = urlMsg.Split('?');//索引0位URL地址,索引1 为 所有的参数

        string[] Args = UrlAndArg[1].Split('&');

        string[] URL = Args[0].Split('=');

        string[] name = Args[1].Split('=');

        string URLPath = URL[1];
        Debug.Log(URLPath);
        string titleName = name[1];

        OpenController.GetBase64(URLPath);

        OpenController.SetTitleName(titleName);
    }
 }

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值