fix:1、多语言优化。2、添加死局检查脚本

This commit is contained in:
2026-07-20 10:48:50 +08:00
parent c2ad44d755
commit ad3b1d24f2
10 changed files with 697 additions and 181 deletions
+79 -79
View File
@@ -195,9 +195,9 @@ public class WebViewObject : MonoBehaviour
case "SetKeyboardVisible":
SetKeyboardVisible(s.Substring(i + 1));
break;
case "RequestFileChooserPermissions":
RequestFileChooserPermissions();
break;
// case "RequestFileChooserPermissions":
// // RequestFileChooserPermissions();
// break;
}
}
}
@@ -219,82 +219,82 @@ public class WebViewObject : MonoBehaviour
}
/// Called from Java native plugin to request permissions for the file chooser.
public void RequestFileChooserPermissions()
{
var permissions = new List<string>();
using (var version = new AndroidJavaClass("android.os.Build$VERSION"))
{
if (version.GetStatic<int>("SDK_INT") >= 33)
{
if (!Permission.HasUserAuthorizedPermission("android.permission.READ_MEDIA_IMAGES"))
{
permissions.Add("android.permission.READ_MEDIA_IMAGES");
}
if (!Permission.HasUserAuthorizedPermission("android.permission.READ_MEDIA_VIDEO"))
{
permissions.Add("android.permission.READ_MEDIA_VIDEO");
}
if (!Permission.HasUserAuthorizedPermission("android.permission.READ_MEDIA_AUDIO"))
{
permissions.Add("android.permission.READ_MEDIA_AUDIO");
}
}
else
{
if (!Permission.HasUserAuthorizedPermission(Permission.ExternalStorageRead))
{
permissions.Add(Permission.ExternalStorageRead);
}
if (!Permission.HasUserAuthorizedPermission(Permission.ExternalStorageWrite))
{
permissions.Add(Permission.ExternalStorageWrite);
}
}
}
if (!Permission.HasUserAuthorizedPermission(Permission.Camera))
{
permissions.Add(Permission.Camera);
}
if (permissions.Count > 0)
{
#if UNITY_2020_2_OR_NEWER
var grantedCount = 0;
var deniedCount = 0;
var callbacks = new PermissionCallbacks();
callbacks.PermissionGranted += (permission) =>
{
grantedCount++;
if (grantedCount + deniedCount == permissions.Count)
{
StartCoroutine(CallOnRequestFileChooserPermissionsResult(grantedCount == permissions.Count));
}
};
callbacks.PermissionDenied += (permission) =>
{
deniedCount++;
if (grantedCount + deniedCount == permissions.Count)
{
StartCoroutine(CallOnRequestFileChooserPermissionsResult(grantedCount == permissions.Count));
}
};
callbacks.PermissionDeniedAndDontAskAgain += (permission) =>
{
deniedCount++;
if (grantedCount + deniedCount == permissions.Count)
{
StartCoroutine(CallOnRequestFileChooserPermissionsResult(grantedCount == permissions.Count));
}
};
Permission.RequestUserPermissions(permissions.ToArray(), callbacks);
#else
StartCoroutine(RequestFileChooserPermissionsCoroutine(permissions.ToArray()));
#endif
}
else
{
StartCoroutine(CallOnRequestFileChooserPermissionsResult(true));
}
}
// public void RequestFileChooserPermissions()
// {
// var permissions = new List<string>();
// using (var version = new AndroidJavaClass("android.os.Build$VERSION"))
// {
// if (version.GetStatic<int>("SDK_INT") >= 33)
// {
// if (!Permission.HasUserAuthorizedPermission("android.permission.READ_MEDIA_IMAGES"))
// {
// permissions.Add("android.permission.READ_MEDIA_IMAGES");
// }
// if (!Permission.HasUserAuthorizedPermission("android.permission.READ_MEDIA_VIDEO"))
// {
// permissions.Add("android.permission.READ_MEDIA_VIDEO");
// }
// if (!Permission.HasUserAuthorizedPermission("android.permission.READ_MEDIA_AUDIO"))
// {
// permissions.Add("android.permission.READ_MEDIA_AUDIO");
// }
// }
// else
// {
// if (!Permission.HasUserAuthorizedPermission(Permission.ExternalStorageRead))
// {
// permissions.Add(Permission.ExternalStorageRead);
// }
// if (!Permission.HasUserAuthorizedPermission(Permission.ExternalStorageWrite))
// {
// permissions.Add(Permission.ExternalStorageWrite);
// }
// }
// }
// if (!Permission.HasUserAuthorizedPermission(Permission.Camera))
// {
// permissions.Add(Permission.Camera);
// }
// if (permissions.Count > 0)
// {
// #if UNITY_2020_2_OR_NEWER
// var grantedCount = 0;
// var deniedCount = 0;
// var callbacks = new PermissionCallbacks();
// callbacks.PermissionGranted += (permission) =>
// {
// grantedCount++;
// if (grantedCount + deniedCount == permissions.Count)
// {
// StartCoroutine(CallOnRequestFileChooserPermissionsResult(grantedCount == permissions.Count));
// }
// };
// callbacks.PermissionDenied += (permission) =>
// {
// deniedCount++;
// if (grantedCount + deniedCount == permissions.Count)
// {
// StartCoroutine(CallOnRequestFileChooserPermissionsResult(grantedCount == permissions.Count));
// }
// };
// callbacks.PermissionDeniedAndDontAskAgain += (permission) =>
// {
// deniedCount++;
// if (grantedCount + deniedCount == permissions.Count)
// {
// StartCoroutine(CallOnRequestFileChooserPermissionsResult(grantedCount == permissions.Count));
// }
// };
// Permission.RequestUserPermissions(permissions.ToArray(), callbacks);
// #else
// StartCoroutine(RequestFileChooserPermissionsCoroutine(permissions.ToArray()));
// #endif
// }
// else
// {
// StartCoroutine(CallOnRequestFileChooserPermissionsResult(true));
// }
// }
#if UNITY_2020_2_OR_NEWER
#else
@@ -214,9 +214,9 @@ namespace Gree.UnityWebView
case "SetKeyboardVisible":
SetKeyboardVisible(s.Substring(i + 1));
break;
case "RequestFileChooserPermissions":
RequestFileChooserPermissions();
break;
// case "RequestFileChooserPermissions":
// RequestFileChooserPermissions();
// break;
}
}
}
@@ -239,90 +239,90 @@ namespace Gree.UnityWebView
}
/// Called from Java native plugin to request permissions for the file chooser.
public void RequestFileChooserPermissions()
{
var permissions = new List<string>();
using (var version = new AndroidJavaClass("android.os.Build$VERSION"))
{
if (version.GetStatic<int>("SDK_INT") >= 33)
{
if (!Permission.HasUserAuthorizedPermission("android.permission.READ_MEDIA_IMAGES"))
{
permissions.Add("android.permission.READ_MEDIA_IMAGES");
}
if (!Permission.HasUserAuthorizedPermission("android.permission.READ_MEDIA_VIDEO"))
{
permissions.Add("android.permission.READ_MEDIA_VIDEO");
}
if (!Permission.HasUserAuthorizedPermission("android.permission.READ_MEDIA_AUDIO"))
{
permissions.Add("android.permission.READ_MEDIA_AUDIO");
}
}
else
{
if (!Permission.HasUserAuthorizedPermission(Permission.ExternalStorageRead))
{
permissions.Add(Permission.ExternalStorageRead);
}
if (!Permission.HasUserAuthorizedPermission(Permission.ExternalStorageWrite))
{
permissions.Add(Permission.ExternalStorageWrite);
}
}
}
#if UNITYWEBVIEW_ANDROID_ENABLE_CAMERA
if (!Permission.HasUserAuthorizedPermission(Permission.Camera) && mAllowVideoCapture)
{
permissions.Add(Permission.Camera);
}
#endif
#if UNITYWEBVIEW_ANDROID_ENABLE_MICROPHONE
if (!Permission.HasUserAuthorizedPermission(Permission.Microphone) && mAllowAudioCapture)
{
permissions.Add(Permission.Microphone);
}
#endif
if (permissions.Count > 0)
{
#if UNITY_2020_2_OR_NEWER
var grantedCount = 0;
var deniedCount = 0;
var callbacks = new PermissionCallbacks();
callbacks.PermissionGranted += (permission) =>
{
grantedCount++;
if (grantedCount + deniedCount == permissions.Count)
{
StartCoroutine(CallOnRequestFileChooserPermissionsResult(grantedCount == permissions.Count));
}
};
callbacks.PermissionDenied += (permission) =>
{
deniedCount++;
if (grantedCount + deniedCount == permissions.Count)
{
StartCoroutine(CallOnRequestFileChooserPermissionsResult(grantedCount == permissions.Count));
}
};
callbacks.PermissionDeniedAndDontAskAgain += (permission) =>
{
deniedCount++;
if (grantedCount + deniedCount == permissions.Count)
{
StartCoroutine(CallOnRequestFileChooserPermissionsResult(grantedCount == permissions.Count));
}
};
Permission.RequestUserPermissions(permissions.ToArray(), callbacks);
#else
StartCoroutine(RequestFileChooserPermissionsCoroutine(permissions.ToArray()));
#endif
}
else
{
StartCoroutine(CallOnRequestFileChooserPermissionsResult(true));
}
}
// public void RequestFileChooserPermissions()
// {
// var permissions = new List<string>();
// using (var version = new AndroidJavaClass("android.os.Build$VERSION"))
// {
// if (version.GetStatic<int>("SDK_INT") >= 33)
// {
// if (!Permission.HasUserAuthorizedPermission("android.permission.READ_MEDIA_IMAGES"))
// {
// permissions.Add("android.permission.READ_MEDIA_IMAGES");
// }
// if (!Permission.HasUserAuthorizedPermission("android.permission.READ_MEDIA_VIDEO"))
// {
// permissions.Add("android.permission.READ_MEDIA_VIDEO");
// }
// if (!Permission.HasUserAuthorizedPermission("android.permission.READ_MEDIA_AUDIO"))
// {
// permissions.Add("android.permission.READ_MEDIA_AUDIO");
// }
// }
// else
// {
// if (!Permission.HasUserAuthorizedPermission(Permission.ExternalStorageRead))
// {
// permissions.Add(Permission.ExternalStorageRead);
// }
// if (!Permission.HasUserAuthorizedPermission(Permission.ExternalStorageWrite))
// {
// permissions.Add(Permission.ExternalStorageWrite);
// }
// }
// }
// #if UNITYWEBVIEW_ANDROID_ENABLE_CAMERA
// if (!Permission.HasUserAuthorizedPermission(Permission.Camera) && mAllowVideoCapture)
// {
// permissions.Add(Permission.Camera);
// }
// #endif
// #if UNITYWEBVIEW_ANDROID_ENABLE_MICROPHONE
// if (!Permission.HasUserAuthorizedPermission(Permission.Microphone) && mAllowAudioCapture)
// {
// permissions.Add(Permission.Microphone);
// }
// #endif
// if (permissions.Count > 0)
// {
// #if UNITY_2020_2_OR_NEWER
// var grantedCount = 0;
// var deniedCount = 0;
// var callbacks = new PermissionCallbacks();
// callbacks.PermissionGranted += (permission) =>
// {
// grantedCount++;
// if (grantedCount + deniedCount == permissions.Count)
// {
// StartCoroutine(CallOnRequestFileChooserPermissionsResult(grantedCount == permissions.Count));
// }
// };
// callbacks.PermissionDenied += (permission) =>
// {
// deniedCount++;
// if (grantedCount + deniedCount == permissions.Count)
// {
// StartCoroutine(CallOnRequestFileChooserPermissionsResult(grantedCount == permissions.Count));
// }
// };
// callbacks.PermissionDeniedAndDontAskAgain += (permission) =>
// {
// deniedCount++;
// if (grantedCount + deniedCount == permissions.Count)
// {
// StartCoroutine(CallOnRequestFileChooserPermissionsResult(grantedCount == permissions.Count));
// }
// };
// Permission.RequestUserPermissions(permissions.ToArray(), callbacks);
// #else
// StartCoroutine(RequestFileChooserPermissionsCoroutine(permissions.ToArray()));
// #endif
// }
// else
// {
// StartCoroutine(CallOnRequestFileChooserPermissionsResult(true));
// }
// }
#if UNITY_2020_2_OR_NEWER
#else