首页
学习
活动
专区
工具
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上不起作用的方法。希望对你有帮助!如果你有其他问题,请随时提问。

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

相关·内容

WebGL问题总结

1.中文的输入输出问题: 1).输出问题:Unity的默认字体ArialWebGL平台并不能正常的显示,解决方法也简单,自己创建一个字体或者去资源商店里找一个,替换所有的Text文本字体。...2).输入问题:InputFieldWebGL平台里不支持中文输入,Gihub上下载了一个插件-WebGLNativeInputField。插件写了一个InputField的派生类。...4.URL链接问题: PC平台使用Application.OpenURL函数可以打开指定的网页,但是WebGL端使用该函数打开网页时会覆盖我们的程序页面,没有其他重载方法。...Plugins文件夹下创建一个 .jslib文件。 然后unity中通过调用声明好的外链方法实现关联,再用一个静态方法进一步封装,方便其他类调用。...使用我们自己编写的OpenURL函数代替Application.OpenURL即可。

1.5K20

11.28 VR扫描:芝麻信用没到750分?支付鸨不让评价?那就看点VR资讯吧!

3D模型 准父母可提前见到自己的孩子 为降低犯罪率 欲用VR技术改造囚犯 PTC与Unity宣布合作 加速Vuforia AR开发 近日,PTC(美国参数技术公司)与Unity Technologies...PTC携手Unity,将Vuforia AR平台融入Unity,为Unity的全球生态系统提供无缝开发体验。此外,通过有计划地对相机和绘制流水线进行优化,AR应用的性能也有望得到改进。...VRPinea独家点评:玩够了VR的Unity开始试水AR。...三星S7升级安卓7.0 却无法兼容Gear VR Phandroid报告显示,很多用户为了使Galaxy S7和Galaxy S7 Edge适配Gear VR而下载Android Nougat Beta...但因为Oculus Store与Android Nougat不兼容,为了使Gear VRNougat下工作,Oculus Store必须更新。目前,Oculus官方还未发布更新消息。

80080

【100个 Unity实用技能】 | Unity 通过自定义菜单将资源导出

Unity 小科普 老规矩,先介绍一下 Unity 的科普小知识: Unity是 实时3D互动内容创作和运营平台 。...未来很长,值得我们全力奔赴更美好的生活✨ ---- Unity 实用小技能学习 【100个 Unity实用技能】☀️ | Unity 通过自定义菜单将资源导出 本篇文章来简单介绍一下通过Unity的自定义菜单将资源导出的方法...AssetDatabase.ExportPackage(assetPathName, unityPackageName, ExportPackageOptions.Recurse); Application.OpenURL...结果和默认模式没有区别 Recurse 递归模式,导出时包含子目录 IncludeDependencies 包含依赖 IncludeLibraryAssets 包含ProjectSetting选项 点击之后就可以项目文件夹下看到我们导出的....unity package文件啦!

61510

【100个 Unity实用技能】☀️ | UGUI Text中加入超链接文本,可直接点击跳转

Unity 小科普 老规矩,先介绍一下 Unity 的科普小知识: Unity是 实时3D互动内容创作和运营平台 。...也可以简单把 Unity 理解为一个游戏引擎,可以用来专业制作游戏! ---- Unity 实用小技能学习 项目中我们可能会有需求让文本显示中增加以一个可以进行点击的具有超链接的文本。...最常见的是一段正常文本内容中,有中间几个字可以进行点击并执行某种事件,比如很多游戏的聊天大厅中会有玩家发出一段文字并带有装备的名称,此时点击装备就可以弹窗显示装备的信息,这个也算是文本中加入超链接的一种...private void OnHyperlinkTextInfo(string info) { Debug.Log("超链接信息:" + info); Application.OpenURL...---- 第二种方法:通过Text组件中内嵌Button的方式完成点击功能 这个方法其实就是属于比较朴实无华的方案了,通过Text组件再添加一个Button放到指定文字下面完成点击事件,这就属于基本的

86360

Unity3D 灵巧小知识点】 ☀️ | 层级面板中的 ‘小手指‘ 作用: Scen中将该物体设置为不可选中状态

Unity 小科普 老规矩,先介绍一下 Unity 的科普小知识: Unity是 实时3D互动内容创作和运营平台 。...包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助 Unity 将创意变成现实。...也可以简单把 Unity 理解为一个游戏引擎,可以用来专业制作游戏!...---- Unity小知识点学习 层级面板中的 ‘小手指’ 作用: Scen中将该物体设置为不可选中状态 层级面板中有一个小手指一样的图标(我也不知道官方叫啥~) 当我们给物体选上之后,...小手指的作用就是,当我们点了这个小手指,成为一个斜杠似的禁止状态时 Scene场景中我们就没法通过鼠标来选中这个物体了 ! 演示效果: ----

2.2K31

使用 Unity 引擎打造免安装游戏

(我们建议不同版本的Android OS上进行测试,至少要包括Nougat和Oreo) 具体需要多长时间取决于游戏的实施细节和复杂程度。...第1步:设置您的工作环境 请先阅读这份检查清单,确保能顺利开始后续的操作: Unity 5.6或更高版本(我们建议至少采用2017.4发布版本) 适用于Unity的Google Play Instant...插件 Unity Asset Store https://assetstore.unity.com/packages/tools/integration/google-play-instant-plug-in...设备(实体或模拟器均可),启用了开发者模式和USB调试功能 游戏APK的项目源代码,用于编译测试和发布版本 Google Play Console中创建内部测试轨道 注册加入Unity Development...,您可能需要迁移玩家体验时产生的一些信息。

1.5K10

移动AR市场风头太猛,谷歌ARCore能够狙击苹果ARkit吗?

最近说到AR,总是会第一时间联想到苹果的ARKit平台,现在一直移动AR上有所举动的谷歌终于坐不住了,他们29日发布了可以和ARKit一决高低的AR平台——基于Android平台的ARCore预览版...同时,谷歌ARCore支持使用Java/OpenGL、Unity和Unreal开发虚拟角色,还支持从Tilt Brush 和Google上个月推出的VR建模工具Blocks中,直接导出ARCore对象。...在手机支持上,目前可以Google Pixel手机和Galaxy S8上使用谷歌ARCore的一些功能,不过手机系统需要升级到Android 7.0 Nougat或最新的Android 8.0 Oreo...抢占移动AR市场 谷歌是时候反击了 苹果推出ARkit之前,谷歌移动AR方面有更多的布局动作,他们去年联合华硕、联想,推出了支持Project Tango的AR手机。...结语 AR方面,谷歌投入了诸多精力。比如他们最近刚刚宣布推出面向企业市场的Google Glass。

1.1K00

记录一次使用安卓模拟器抓包安卓应用

2.问题解决 最大的一个问题就是模拟器上面进行HTTPS抓包时,会因为抓包软件的SSL证书不被信任而导致无法正常访问。...Android7以后,系统不再信任用户级的证书,只信任系统级的证书,所以要抓包就需要把我们的代理程序证书安装至Android的系统目录中。所以仍会出现证书不被信任的问题。...同一个目录下创建命令行脚本,如下: cd php php.exe ...../spider.php pause 值得注意的是此时php程序运行时,运行目录为php目录 同时php.ini里需要将ext_dir..(扩展目录),修改为当前php的目录。...控制台打印当前断点作用域变量。 相关文章:https://zhuanlan.zhihu.com/p/108207751?from_voters_page=true

2.1K10

关于PHP缓冲控制IE浏览器下的应用

> 上面这段程序是实现每隔1秒钟浏览器上输出一个字符,但实际效果是程序执行完后才把所有字符输出到浏览器上,调试了好几次都不行。在网上搜索了N个技术文章都没有解决这个问题。...最后从一篇文章上找到些灵感,那篇文章里写到flush()函数可能在微软IE浏览器的个别版本上不起作用。...于是我用FireFox浏览器试了一下,果然立即出现了想要的效果,我的浏览器是IE6,经过查阅相关资料,得知,IE的某些版本只有字符串缓冲到256字节的时候才会将缓冲内容输出到浏览器上。...经验不敢独享,贴上来和各位一起分享,希望大家的开发过程中如果遇到类似问题可以帮上忙!

1.2K10

ARCore 初探

最近推出的Daydream 2.0版本提出了Instant Preview,Unity平台上开发可以让手机与电脑一起联动,提高开发效率。...ARCore上手 官方运行设备 ARCore被设计用来支持数量广大的Android设备,但是目前对设备要求比较严格,要求系统不低于Android 7.0 Nougat(API 24),支持下列设备: Google...开发环境 根据目前的Google AR文档描述,支持的开发环境有Android Studio、Unity、Unreal、Web四种。下面以Android Studio为例进行开发。...首先搭建开发环境: 安装Android Studio 2.3 或更高版本,运行环境Android 7.0 Nougat(API 24)或更高版本。...异同点 光线感知:ARKit和ARCore都可以对环境光进行简单的估计,ARKit为开发者提供了强度和色温选项,而ARCore提供了单像素强度值(Android Studio API)和Shader(Unity

6.1K11

游戏大咖Unity发布机器学习工具,可大幅提高NPC的“智商”

游戏开发的过程中,既不能让玩家因过于简单而无聊,也不能因难度太高丧失玩家兴趣。Unity开发者Arthur Juliani表示,Unity的ML-Agent将帮助增加游戏的可玩性。...△ Unity工程师自述ML-Agent游戏开发中的意义 过去,开发人员需要手工编写代码,让训练环境中的相互作用逐步训练Agent,典型场景是一个单一环境+紧密耦合的Agent。...Unity官方博客中展示了一些不同场景的训练实例,经过一段时间的训练,Agent的表现都很惊人: △ 30秒内训练Agent玩3D平衡球 Unity游戏引擎能高精度模拟现实场景,比如物体的纹理、光效、...Unity AI和机器学习技术部的副总裁Danny Lange接受采访时表示,Unity的ML-Agents的作用并不局限于虚拟游戏,还将加速现实生活中机器人等技术的进步。...比如对自动驾驶行业来说,可以计算机生成的但逼真的虚拟环境中较为真实地训练它们。

1.5K60

谷歌Daydream:我们的征途是星辰大海

正式发货之前,谷歌一直在为给用户带来更好的移动VR体验做各方面的优化。...考虑到Daydream View对手机系统和配置的高要求,谷歌先是10月底推出了Android 7.0 Nougat的更新版本——Android 7.1的开发者预览版。...佩戴舒适度上,设计的弹簧合页可允许View的前翻盖进行扩展,以适应不同厚度的手机。...开发者可以通过这个SDK为符合Daydream的VR头显打造VR体验,同时,它还支持Unity和Unreal游戏引擎工具的集成。...但是考虑到移动VR硬件配置上的局限性,VR游戏Daydream平台上要比视频内容的数量少,VR游戏更多的还是要倚靠PC VR这些高端设备。正如谷歌负责人所说,Daydream集中视频内容上。

50040

Unity3D中的meta文件笔记

最近在工程项目中发现,自己的电脑上没有问题的场景,同事的电脑上就会出问题。问题就是场景中引用到的script、prefab总是会出现Unity找不到的情况(显示“Missing xxx”)。....meta文件的作用 Unity中,每次我们创建一个prefab、导入文件的时候,Unity都会自动生成为这个prefab、资源文件生成一个独特的ID,这是为了方便Unity进行资源管理,在你重命名、...此时你更改了图片的名称,重新打开prefab查看(当然,旧版本的Unity需要移动到场景中才能查看,不能直接打开),就会发现你完全没有更新图片的引用的情况下,Unity自动完成了相关资源的更新。...但是,如果你是Unity外面,例如在Finder(mac的资源管理器)或者文件管理器里面修改了这些资源的名字,那么就需要将.meta文件也手动修改名字以确保.meta文件的名字与资源名字保持一致,否则可能会导致引用失效...Unity中.Meta文件作用详解

1.9K60

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券