请求相机权限 Flutter Web

2023-12-27

我需要在我的网络应用程序中使用相机。所以我想如果用户拒绝在他/她的浏览器上使用相机,我会再次请求它允许相机许可。

这是我的代码

import 'package:universal_html/html.dart' as html;


      RaisedButton(
            onPressed: () {
              var permissions = Map<String,String>();
              permissions['name']= 'camera';
              html.window.navigator.permissions.request(permissions).then((value){
                print((value).state);
              });
            },
            child: Text('Grant Permission'),
          )

但是当我单击“授予权限”按钮时,它会记录此错误

html_dart2js.dart:25368 Uncaught (in promise) TypeError: this.request is not a function
at Permissions.[dartx.request] (html_dart2js.dart:25368)
at web_camera_preview_screen.dart:157
at Generator.next (<anonymous>)
at runBody (async_patch.dart:86)
at Object._async [as async] (async_patch.dart:125)
at ink_well.InkWell.new.<anonymous> (web_camera_preview_screen.dart:154)
at _InkResponseState.new.[_handleTap] (ink_well.dart:779)
at ink_well.dart:862
at tap.TapGestureRecognizer.new.invokeCallback (recognizer.dart:182)
at tap.TapGestureRecognizer.new.handleTapUp (tap.dart:504)
at tap.TapGestureRecognizer.new.[_checkUp] (tap.dart:282)
at tap.TapGestureRecognizer.new.handlePrimaryPointer (tap.dart:217)
at tap.TapGestureRecognizer.new.handleEvent (recognizer.dart:475)
at pointer_router.PointerRouter.new.[_dispatch] (pointer_router.dart:76)
at pointer_router.dart:122
at LinkedMap.new.forEach (linked_hash_map.dart:23)
at pointer_router.PointerRouter.new.[_dispatchEventToRoutes] (pointer_router.dart:120)
at pointer_router.PointerRouter.new.route (pointer_router.dart:106)
at binding$5.WidgetsFlutterBinding.new.handleEvent (binding.dart:218)
at binding$5.WidgetsFlutterBinding.new.dispatchEvent (binding.dart:198)
at binding$5.WidgetsFlutterBinding.new.[_handlePointerEvent] (binding.dart:156)
at binding$5.WidgetsFlutterBinding.new.[_flushPointerEventQueue] (binding.dart:102)
at binding$5.WidgetsFlutterBinding.new.[_handlePointerDataPacket] (binding.dart:86)
at Object._invoke1 (window.dart:590)
at _engine.EngineWindow.new.invokeOnPointerDataPacket (window.dart:238)
at _engine.PointerBinding.__.[_onPointerData] (pointer_binding.dart:129)
at pointer_binding.dart:457
at pointer_binding.dart:418
at HTMLElement.<anonymous> (pointer_binding.dart:195)

根据信息来自MDN https://developer.mozilla.org/en-US/docs/Web/API/Permissions, permissions API仍处于实验阶段,其request方法标记为非标准,但我们可以使用query method:

RaisedButton(
  child: Text("Request permission"),
  onPressed: () async {
    final perm = await html.window.navigator.permissions.query({"name": "camera"});
    if (perm.state == "denied") {
      Scaffold.of(context).showSnackBar(SnackBar(
        content: Text("Oops! Camera access denied!"),
        backgroundColor: Colors.orangeAccent,
      ));
      return;
    }
    final stream = await html.window.navigator.getUserMedia(video: true);
    // ...
  },
),
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

请求相机权限 Flutter Web 的相关文章

随机推荐

  • 如何使自动续订订阅与内部用户而不是 Apple ID 绑定?

    我似乎遇到了障碍 但本质上我在应用程序中拥有的是用户登录页面和创建帐户页面 当用户打开我的应用程序并创建新帐户时 他们的信息将存储在 Firebase 服务器 BaSS 上 现在我的问题是我将如何去做 以便对于通过我的应用程序创建帐户的每个
  • 在 Windows 中更改 org.eclipse.swt.widgets 背景颜色

    现在我正在尝试使用以下代码更改 org eclipse swt widgets Button 的背景颜色 Button sceneButton new Button border SWT TOGGLE SWT FLAT sceneButto
  • 识别矩阵中的值

    我有一个问题 然后我需要你的帮助来解决它 我有一个矩阵A A 0 0 1 2 3 4 0 1 2 3 4 0 0 0 0 0 0 1 2 3 4 0 1 2 3 4 0 0 然后我想知道矩阵 A 中每行的每个值 1 的个数与矩阵 A 中每行
  • ReferenceError:请求未定义

    我正在尝试复制一个脸书消息机器人 https developers facebook com docs messenger platform guides quick start但继续得到request is not defined 与 F
  • Prettier.js 方法关于换行格式的参数

    我正在运行 Prettier js VSCode 插件 prettier eslint cli 它将超过 80 个字符限制的方法参数格式化如下 将每个参数放在新行中 someMethod argumentOne argumentTwo ar
  • 值表/树

    我的问题 有没有办法创建价值树 类似于命令 TreeForm 的输出 但是节点中的值呢 我为什么要这个 我正在尝试编写一个完整的程序来分析我的实验课程的输出 每列数据作为一个符号分配 一般来说 每一列都是有意义的 它不仅仅是一堆不同的变量
  • 如何创建点分
    标签? [复制]

    这个问题在这里已经有答案了 如何使用 CSS 创建虚线或任何类型的 hr 线 双线 虚线等 hr 或者还有其他技巧吗 你可以有 hr style border top dotted 1px 那应该有效
  • 访问 json 树的叶子

    我有一个以下形式的 JSON 文件 id 442500000116137984 reply 0 children id 442502378957201408 reply 0 children id 442500001084612608 re
  • RestKit 映射 XML 元素主体

    如何为 XML 元素主体创建 RestKit 对象映射到对象属性 XML
  • 我可以在 GDB 的“内存访问”上设置断点吗?

    我正在通过 gdb 运行应用程序 并且我想在访问 更改特定变量的任何时间设置断点 有没有好的方法来做到这一点 我也对监视 C C 中的变量以查看它是否 何时发生变化的其他方法感兴趣 watch仅在写入时中断 rwatch让你继续阅读 并且a
  • App.config 替换单元测试

    我的持续集成服务器 TeamCity 配置为在构建时运行我们应用程序中的所有单元测试 在运行这些测试之前 我需要更改一些 appSettings 以使它们对我们的 CI 服务器有效 我通过使用 Visual Studio 提供的部署项目为我
  • Google Calendar Api 不要求 Oauth Screen

    我最近用过Google Calendar API 我已经创建了项目并生成了凭据 对于本地主机 我使用了以下凭据 installed client id xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx apps google
  • 如何将LogCat内容保存到文件?

    我添加了调试字符串 使用 Log d 并希望在 logCat 内容的上下文中查看它们 LogCat 的 保存 图标有一个 保存所选项目 提示 但必须有一种快速方法来保存整个内容 或选择整个内容 但我不知道该怎么做 要将 Log cat 内容
  • 如何在预测后保留 xts 时间序列数据中的日期

    请考虑这个小数据集 library xts library ggplot2 library forecast data lt data frame idDate c 12 12 2012 13 12 2012 14 12 2012 16 1
  • 如何使用 Google Sheets 脚本查找列中第一个匹配项的索引?

    我正在尝试使用 Google Sheets 脚本查找列中第一个匹配项的索引 function getRowIndex var lookupValue car var ss SpreadsheetApp getActiveSpreadshee
  • bean实例化失败;嵌套异常是 java.lang.NoClassDefFoundError: org/apache/log4j/Logger

    我试图让公共日志记录适用于 log4j 配置 但在启动服务器时不断出现异常 当尝试使用 StringUtils 时 我也遇到了类似的异常 该异常可通过另一个公共库获得 org springframework beans factory Be
  • 具有自定义接收器的 Spark 结构化流中的输入行数

    我在结构化流 spark 2 2 0 中使用自定义接收器 并注意到 Spark 为输入行数生成了错误的指标 它始终为零 我的流构建 StreamingQuery writeStream session readStream schema R
  • 如何根据嵌套键值删除JSONB列中的数组元素?

    如何根据对象键之一的值从数组中删除对象 该数组嵌套在父对象内 这是一个示例结构 foo1 bar1 123 bar2 456 bar1 789 bar2 42 foo2 some other stuff 我可以根据以下值删除数组元素吗bar
  • 在 Android/Jetpack Compose 中手动预填充导航后台

    是否可以在 Android Jetpack Compose 中预填充导航后台 我有一个深层链接 可以深入导航层次结构 但是 按后退时 它会导航到根路线 Example Route Main gt Route List gt Route De
  • 请求相机权限 Flutter Web

    我需要在我的网络应用程序中使用相机 所以我想如果用户拒绝在他 她的浏览器上使用相机 我会再次请求它允许相机许可 这是我的代码 import package universal html html dart as html RaisedBut