1. 新增iOSWiFiHelper类实现异步获取WiFi SSID,自动请求位置权限 2. 新增iOS权限描述本地化处理器,实现中英文权限文案自动切换 3. 更新所有iOS权限描述为更清晰的英文/中文说明 4. 优化iOS编译后处理脚本优先级,避免被其他插件覆盖 5. 在连接设备页面和WiFi设置页面自动填充当前WiFi名称 6. 更新应用版本号与构建号
49 lines
1.5 KiB
C#
49 lines
1.5 KiB
C#
using System;
|
||
using System.Runtime.InteropServices;
|
||
using UnityEngine;
|
||
|
||
/// <summary>
|
||
/// iOS WiFi 名称异步获取辅助类。
|
||
/// 自动请求位置权限(iOS 14+ NEHotspotNetwork 需要),
|
||
/// 用户授权后回调返回当前连接的 WiFi 名称,无需重新打开页面。
|
||
/// </summary>
|
||
public class iOSWiFiHelper : MonoBehaviour
|
||
{
|
||
private static iOSWiFiHelper _instance;
|
||
private static Action<string> _callback;
|
||
|
||
/// <summary>
|
||
/// 请求位置权限并获取当前 WiFi 名称,授权后异步回调。
|
||
/// </summary>
|
||
/// <param name="callback">回调参数为 WiFi SSID,获取失败或用户拒绝时为 null</param>
|
||
public static void RequestWiFiSSID(Action<string> callback)
|
||
{
|
||
_callback = callback;
|
||
#if UNITY_IOS && !UNITY_EDITOR
|
||
EnsureInstance();
|
||
RequestWiFiSSIDNative(_instance.name, "OnWiFiSSIDResult");
|
||
#endif
|
||
}
|
||
|
||
private static void EnsureInstance()
|
||
{
|
||
if (_instance != null) return;
|
||
var go = new GameObject("iOSWiFiHelper");
|
||
DontDestroyOnLoad(go);
|
||
_instance = go.AddComponent<iOSWiFiHelper>();
|
||
}
|
||
|
||
/// <summary>原生层通过 UnitySendMessage 回调此方法</summary>
|
||
public void OnWiFiSSIDResult(string ssid)
|
||
{
|
||
var cb = _callback;
|
||
_callback = null;
|
||
cb?.Invoke(string.IsNullOrEmpty(ssid) ? null : ssid);
|
||
}
|
||
|
||
#if UNITY_IOS && !UNITY_EDITOR
|
||
[DllImport("__Internal")]
|
||
private static extern void RequestWiFiSSIDNative(string gameObjectName, string methodName);
|
||
#endif
|
||
}
|