首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

UNITY Application.OpenUrl()在Android7 Nougat上不起作用

UNITY Application.OpenUrl()是Unity引擎中的一个函数,用于在应用程序中打开指定的URL链接。然而,在Android 7 Nougat版本上,由于安全性增强的限制,该函数可能无法正常工作。

Android 7 Nougat引入了一项新的安全策略,称为"StrictMode"。该策略禁止应用程序在主线程中执行网络请求或访问外部资源,以避免阻塞用户界面。由于Application.OpenUrl()函数可能会触发网络请求,因此在Android 7 Nougat上可能会受到StrictMode的限制。

为了解决这个问题,可以使用Unity的插件系统来调用Android原生的Intent来打开URL链接。下面是一个示例代码:

代码语言:csharp
复制
#if UNITY_ANDROID && !UNITY_EDITOR
using UnityEngine;
using System.Collections;
using UnityEngine.Android;

public class OpenURL : MonoBehaviour
{
    public void Open(string url)
    {
        if (!Permission.HasUserAuthorizedPermission(Permission.ExternalStorageRead))
        {
            Permission.RequestUserPermission(Permission.ExternalStorageRead);
        }

        if (!Permission.HasUserAuthorizedPermission(Permission.ExternalStorageWrite))
        {
            Permission.RequestUserPermission(Permission.ExternalStorageWrite);
        }

        AndroidJavaClass intentClass = new AndroidJavaClass("android.content.Intent");
        AndroidJavaObject intentObject = new AndroidJavaObject("android.content.Intent", intentClass.GetStatic<string>("ACTION_VIEW"));
        AndroidJavaClass uriClass = new AndroidJavaClass("android.net.Uri");
        AndroidJavaObject uriObject = uriClass.CallStatic<AndroidJavaObject>("parse", url);
        intentObject.Call<AndroidJavaObject>("setData", uriObject);
        AndroidJavaClass unity = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
        AndroidJavaObject currentActivity = unity.GetStatic<AndroidJavaObject>("currentActivity");
        currentActivity.Call("startActivity", intentObject);
    }
}
#endif

上述代码使用了Android的Intent来打开URL链接。在使用该代码之前,需要确保在Unity的Player Settings中启用了"Write Permission"和"Read Permission"选项。

这是一个解决UNITY Application.OpenUrl()在Android 7 Nougat上不起作用的方法。希望对你有帮助!如果你有其他问题,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的视频

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券