热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在ionic-webview中不允许Ionic4getUserMedia

如何解决《在ionic-webview中不允许Ionic4getUserMedia》经验,为你挑选了1个好方法。



1> Marcus..:

被标记为重复项:getUserMedia是否可以在Android应用程序的ionic-webview中工作?

尽管如此,我还是在下面复制并粘贴了我的答案


更新-04/11/2018-正常工作的离子示例

如所承诺的,我今天对此有所了解。现在要完全回答您的问题:是的,您可以在Android上的ionic中访问getUserMedia。

在这里查看我的GitHub项目以获取工作示例和屏幕截图。

在此处查看此功能分支,该分支成功在iframe中测试了getUserMedia

涉及的步骤:

安装离子

ionic start getUserMedia空白

cd getUserMedia

离子Cordova插件添加cordova-plugin-android-permissions

npm install --save @ ionic-native / android-permissions

npm install webrtc-adapter-保存

链接到angular.json脚本中的适配器(链接)

将AndroidPermissions添加到app.module.ts提供程序(链接)

在home.component.ts中创建相机访问代码(链接)

加入Android的manifiest权限config.xml和AndroidManifest.xml中(链接,如果配置不复制到平台/安卓/应用/ src目录/ AndroidManifest.xml中)

离子科尔多瓦平台添加Android

离子科尔多瓦建立Android

离子科尔多瓦运行Android

您还可以看到React Native,Android和Cordova的替代版本。

由于Apple对WKWebView和UIWebView的安全限制,截至此更新之时,仍不支持iOS。

iframe:要确保getUserMedia在其中起作用,请确保您:

嵌入式站点的CORS需要具有允许的访问源标头

启用安全权限以访问摄像头和麦克风

请阅读以下有关iframe功能的详细信息:

https://www.chromestatus.com/feature/5023919287304192

https://bugs.webkit.org/show_bug.cgi?id=167430

https://dev.chromium.org/Home/chromium-security/deprecating-permissions-in-cross-origin-iframes

https://bugzilla.mozilla.org/show_bug.cgi?id=1389198

https://github.com/instructure/canvas-lms/issues/1219


是的,理论上它可以工作。请参阅下面的示例,了解如何在Android中执行此操作。对于iOS,由于WKWebView的限制,目前尚无法实现。我已经链接到下面的StackOverFlow问题,即人们如何在Ionic所基于的Cordova上实现这一目标。

无论框架如何,要使getUserMedia在Android上运行都需要实现的核心主要步骤是:

    确保您的应用是Android API 21及更高版本

    向清单添加权限(链接到文件)

    确保使用getUserMedia适配器实现API兼容性

    确保将webrtc添加到Android项目gradle文件中(链接到file)

    覆盖Chrome WebView的权限以进行高级访问(链接到文件示例,第106行)

    在应用程序启动时,请询问用户是否有权访问相机。

您面临的具体问题是4.或5。看起来该项目使您走到了那么远。权限错误很可能是由于您的应用使用的Chrome WebView不会覆盖该权限,并且/或者是,并且用户尚未手动启用该权限。

因此,在Ionic框架内,您需要扩展其浏览器以访问对onRequestPermissionsResult的覆盖。为此,您需要制作一个Cordova插件,然后创建Ionic绑定。

可在此处找到有关类似框架的更多信息:

为什么CordovaWebViewClient不再在Cordova 6中工作

https://github.com/marcusbelcher/rn-getUserMedia-test

https://github.com/marcusbelcher/android-getUserMedia-test

科尔多瓦版本的问题:NotReadableError:无法启动源

渐进式Web应用程序:访问navigator.mediaDevices.getUserMedia时出错?


推荐阅读
  • 本文比较了eBPF和WebAssembly作为云原生VM的特点和应用领域。eBPF作为运行在Linux内核中的轻量级代码执行沙箱,适用于网络或安全相关的任务;而WebAssembly作为图灵完备的语言,在商业应用中具有优势。同时,介绍了WebAssembly在Linux内核中运行的尝试以及基于LLVM的云原生WebAssembly编译器WasmEdge Runtime的案例,展示了WebAssembly作为原生应用程序的潜力。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • SpringBoot整合SpringSecurity+JWT实现单点登录
    SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
  • 从零基础到精通的前台学习路线
    随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
  • 本文介绍了NetCore WebAPI开发的探索过程,包括新建项目、运行接口获取数据、跨平台部署等。同时还提供了客户端访问代码示例,包括Post函数、服务器post地址、api参数等。详细讲解了部署模式选择、框架依赖和独立部署的区别,以及在Windows和Linux平台上的部署方法。 ... [详细]
  • JavaScript设计模式之策略模式(Strategy Pattern)的优势及应用
    本文介绍了JavaScript设计模式之策略模式(Strategy Pattern)的定义和优势,策略模式可以避免代码中的多重判断条件,体现了开放-封闭原则。同时,策略模式的应用可以使系统的算法重复利用,避免复制粘贴。然而,策略模式也会增加策略类的数量,违反最少知识原则,需要了解各种策略类才能更好地应用于业务中。本文还以员工年终奖的计算为例,说明了策略模式的应用场景和实现方式。 ... [详细]
  • 使用在线工具jsonschema2pojo根据json生成java对象
    本文介绍了使用在线工具jsonschema2pojo根据json生成java对象的方法。通过该工具,用户只需将json字符串复制到输入框中,即可自动将其转换成java对象。该工具还能解析列表式的json数据,并将嵌套在内层的对象也解析出来。本文以请求github的api为例,展示了使用该工具的步骤和效果。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • 预备知识可参考我整理的博客Windows编程之线程:https:www.cnblogs.comZhuSenlinp16662075.htmlWindows编程之线程同步:https ... [详细]
  • 网络请求模块选择——axios框架的基本使用和封装
    本文介绍了选择网络请求模块axios的原因,以及axios框架的基本使用和封装方法。包括发送并发请求的演示,全局配置的设置,创建axios实例的方法,拦截器的使用,以及如何封装和请求响应劫持等内容。 ... [详细]
  • Whatsthedifferencebetweento_aandto_ary?to_a和to_ary有什么区别? ... [详细]
  • 本文介绍了一个适用于PHP应用快速接入TRX和TRC20数字资产的开发包,该开发包支持使用自有Tron区块链节点的应用场景,也支持基于Tron官方公共API服务的轻量级部署场景。提供的功能包括生成地址、验证地址、查询余额、交易转账、查询最新区块和查询交易信息等。详细信息可参考tron-php的Github地址:https://github.com/Fenguoz/tron-php。 ... [详细]
  • 本文介绍了如何在Azure应用服务实例上获取.NetCore 3.0+的支持。作者分享了自己在将代码升级为使用.NET Core 3.0时遇到的问题,并提供了解决方法。文章还介绍了在部署过程中使用Kudu构建的方法,并指出了可能出现的错误。此外,还介绍了开发者应用服务计划和免费产品应用服务计划在不同地区的运行情况。最后,文章指出了当前的.NET SDK不支持目标为.NET Core 3.0的问题,并提供了解决方案。 ... [详细]
  • ShiftLeft:将静态防护与运行时防护结合的持续性安全防护解决方案
    ShiftLeft公司是一家致力于将应用的静态防护和运行时防护与应用开发自动化工作流相结合以提升软件开发生命周期中的安全性的公司。传统的安全防护方式存在误报率高、人工成本高、耗时长等问题,而ShiftLeft提供的持续性安全防护解决方案能够解决这些问题。通过将下一代静态代码分析与应用开发自动化工作流中涉及的安全工具相结合,ShiftLeft帮助企业实现DevSecOps的安全部分,提供高效、准确的安全能力。 ... [详细]
author-avatar
港1009
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有