Xamarin 中 QR 扫描后的处理对话框

2024-05-04

我在Xamarin应用程序中使用QR码扫描仪,当它扫描QR码时,它会执行一些操作,大约需要一分钟,而在执行操作时,我想在屏幕上显示一个加载对话框。但是,它没有显示在屏幕上,并且在应用程序的其他地方,它运行得很好。

Code

var expectedFormat = ZXing.BarcodeFormat.QR_CODE;
var opts = new ZXing.Mobile.MobileBarcodeScanningOptions { PossibleFormats = new List<ZXing.BarcodeFormat> { expectedFormat } };
var scanner = new ZXing.Mobile.MobileBarcodeScanner();
var result = await scanner.Scan(opts);
if (result == null)
{
    // code

    return null;
}
else
{
    using (UserDialogs.Instance.Loading("Processing"))
    {
        // code
    }
}

更新代码示例

public async Task Verification(object sender, EventArgs e)
{
    try
    {
        var expectedFormat = ZXing.BarcodeFormat.QR_CODE;
        var opts = new ZXing.Mobile.MobileBarcodeScanningOptions { PossibleFormats = new List<ZXing.BarcodeFormat> { expectedFormat } };
        var scanner = new ZXing.Mobile.MobileBarcodeScanner();
        var result = await scanner.Scan(opts);
        if (result == null)
        {
            // Code
            
            return null;
        }
        else
        {
            try
            {
                // QR Scan Result
                string qr_scan = result.Response;

                var result = JsonConvert.DeserializeObject<QRScan>(qr_scan);

                await CreateConnection();
            }
            catch (Exception error)
            { }
            finally
            {
                // navigate to next page
                await NavigationService.NavigateToAsync<NextViewModel>();
            }
        }
    }
    catch (Exception error)
    { }

    return null;
}

public async Task CreateConnection()
{
    UserDialogs.Instance.Loading("Processing");
     
    if ()
    {
        try
        {
            // Code
        }
        catch (Exception error)
        {
            // Code
        }
        finally
        {
            await CreateFolder(default, default);
        }
    }
}

public async Task CreateFolder(object sender, EventArgs e)
{
    UserDialogs.Instance.Loading("Processing");

    try
    {
        // Code
    }
    catch (Exception error)
    {
        // Code
    }

    return null;
}  

您可以使用Xamarin.Essentials https://learn.microsoft.com/en-us/xamarin/essentials/' 主线程 https://learn.microsoft.com/en-us/xamarin/essentials/main-thread?content=xamarin/xamarin-forms类,更具体地说 -InvokeOnMainThreadAsync方法。此方法的想法是不仅在 UI/主线程上执行代码,而且还要等待它的代码。这样您就可以同时拥有异步/等待逻辑和主线程执行。

try
{
    // QR Scan Result
    string qr_scan = result.Response;
    var result = JsonConvert.DeserializeObject<QRScan>(qr_scan);
    await MainThread.InvokeOnMainThreadAsync(() => CreateConnection());
}
catch (Exception error)
{ }
finally
{
    // navigate to next page
    await NavigationService.NavigateToAsync<NextViewModel>();
}

请记住,如果该方法CreateConnection执行时间较长,那么最好只在主线程上执行对话框呈现(UserDialogs.Instance.Loading("")).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Xamarin 中 QR 扫描后的处理对话框 的相关文章

  • Android Root 执行 su 带参数

    我在使用参数执行 su 时遇到问题 包含空格 我的 Command java 看起来像这样 public class Command Process process public String executeCommand String c
  • Activity 类型中的方法 showDialog(int) 在 Android 中已被弃用?

    方法showDialog int 从类型Activity is 已弃用 什么原因 以及如何解决 什么原因 http developer android com reference android app Activity html show
  • Cython 和类的构造函数

    我对 Cython 使用默认构造函数有疑问 我的 C 类 Node 如下 Node h class Node public Node std cerr lt lt calling no arg constructor lt lt std e
  • WPF TabControl,用C#代码更改TabItem的背景颜色

    嗨 我认为这是一个初学者的问题 我搜索了所有相关问题 但所有这些都由 xaml 回答 但是 我需要的是后台代码 我有一个 TabControl 我需要设置其项目的背景颜色 我需要在选择 取消选择和悬停时为项目设置不同的颜色 非常感谢你的帮助
  • 剪切评级栏中的图像

    我制作了自己的评级栏 花朵图像有 4 种尺寸 xdpi hdpi 等 从 24px24px 到 64x64px
  • Qt moc 在头文件中实现?

    是否可以告诉 Qt MOC 我想声明该类并在单个文件中实现它 而不是将它们拆分为 h 和 cpp 文件 如果要在 cpp 文件中声明并实现 QObject 子类 则必须手动包含 moc 文件 例如 文件main cpp struct Sub
  • 指针减法混乱

    当我们从另一个指针中减去一个指针时 差值不等于它们相距多少字节 而是等于它们相距多少个整数 如果指向整数 为什么这样 这个想法是你指向内存块 06 07 08 09 10 11 mem 18 24 17 53 7 14 data 如果你有i
  • vector 超出范围后不清除内存

    我遇到了以下问题 我不确定我是否错了或者它是一个非常奇怪的错误 我填充了一个巨大的字符串数组 并希望在某个点将其清除 这是一个最小的例子 include
  • 在 Nougat 7.1.1 中点击应用程序快捷方式时出现应用程序未安装错误

    我在向现有应用程序添加静态应用程序快捷方式时遇到一些问题 我按照以下步骤操作https developer android com guide topics ui shortcuts html https developer android
  • Github Action 在运行可执行文件时卡住

    我正在尝试设置运行google tests on a C repository using Github Actions正在运行的Windows Latest 构建过程完成 但是当运行测试时 它被卡住并且不执行从生成的可执行文件Visual
  • 如何衡量两个字符串之间的相似度? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 给定两个字符串text1 and text2 public SOMEUSABLERETURNTYPE Compare string t
  • for循环中计数器变量的范围是多少?

    我在 Visual Studio 2008 中收到以下错误 Error 1 A local variable named i cannot be declared in this scope because it would give a
  • 线程睡眠和Windows服务

    我正在开发一个 Windows 服务 该服务存在一些问题Thread Sleep 所以我想我会尝试使用计时器 因为这个问题建议 在 Windows 服务中使用 Thread Sleep https stackoverflow com que
  • 使用Intent拨打电话需要权限吗?

    在我的一个应用程序中 我使用以下代码来拨打电话 Intent intent new Intent Intent ACTION CALL Uri parse startActivity intent 文档说我确实需要以下清单许可才能这样做
  • 如何正确编写AttributeSet的XML?

    我想创建一个面板适用于 Android 平台的其他小部件 http code google com p android misc widgets 在运行时 XmlPullParser parser getResources getXml R
  • 控制到达非 void 函数末尾 -wreturn-type

    这是查找四个数字中的最大值的代码 include
  • 在 Dynamics CRM 插件中访问电子邮件发件人地址

    我正在编写一个 Dynamics CRM 2011 插件 该插件挂钩到电子邮件实体的更新后事件 阶段 40 pipeline http msdn microsoft com en us library gg327941 aspx 并且在此阶
  • 32 位到 64 位内联汇编移植

    我有一段 C 代码 在 GNU Linux 环境下用 g 编译 它加载一个函数指针 它如何执行并不重要 使用一些内联汇编将一些参数推送到堆栈上 然后调用该函数 代码如下 unsigned long stack 1 23 33 43 save
  • 为什么我收到“找不到编译动态表达式所需的一种或多种类型。”?

    我有一个已更新的项目 NET 3 5 MVC v2 到 NET 4 0 MVC v3 当我尝试使用或设置时编译出现错误 ViewBag Title财产 找不到编译动态表达式所需的一种或多种类型 您是否缺少对 Microsoft CSharp
  • 使用按位运算符相乘

    我想知道如何使用按位运算符将一系列二进制位相乘 但是 我有兴趣这样做来查找二进制值的十进制小数值 这是我正在尝试做的一个例子 假设 1010010 我想使用每个单独的位 以便将其计算为 1 2 1 0 2 2 1 2 3 0 2 4 虽然我

随机推荐

  • 为什么 Resources.Load 返回 null?

    我的项目有多个精灵 位于 Assets Sprites 中 我想使用 C 脚本加载它们 我已经测试过这个 Sprite myFruit Resources Load
  • 使用服务器帐户模拟用户以访问其 Google 云端硬盘时出现 401 未经授权错误

    我正在用 Java 编写一个后端进程 它将模拟用户并在其 Google Drive 上添加 删除文档 服务器帐户似乎验证正确 但是当我尝试冒充用户时 我得到一个401 Unauthorized error 请参阅下面的详细信息 配置 我已配
  • Python:Tkinter Treeview 可搜索

    相当直接的问题 尽管我用了最好的谷歌搜索 但我找不到任何相关内容 我有一个 Python 应用程序 它使用 Tkinter Treeview 小部件作为表格 这对于我需要使用它的用途来说效果很好 但最终会在一些树中出现几百个项目 无论如何
  • 如何将 NHibernate 和 DTO 与 RIA 服务结合使用

    我将 NHibernate 与 RIA 服务和 Silverlight 4 一起使用 我创建 DTO 来通过 RIA 服务传输数据 而不是分发我的域层对象 根据 Martin Fowler 的分布式对象设计第一定律 不要分发您的对象 DTO
  • Azure 上的 Laravel 应用程序:用户“azure”@“localhost”的访问被拒绝

    我正在将 Laravel 应用程序部署到 Azure Web 应用程序 Mysql 到目前为止我执行了以下步骤 1 在应用程序中激活Mysql 2 连接到 BitBucket 存储库并确保代码已同步 3 创建 env文件并设置数据库变量如下
  • android:clickable="true" 意味着它不可点击?

    我有一个 ListView 其中包含一些自定义部分 每个部分都有自己的标题视图 我希望列表中的元素可单击 但显然不希望节标题可单击 所以在我添加的节标题的 xml 中android clickable false 调试时我注意到节标题仍然响
  • 如何仅使用 XAML 标记在单击另一个控件时打开 WPF 弹出窗口?

    我有两个控件 一个 TextBlock 和一个 PopUp 当用户在文本块上单击 MouseDown 时 我想显示弹出窗口 我认为我可以使用弹出窗口上的 EventTrigger 来完成此操作 但我不能在 EventTrigger 中使用设
  • 在主窗体上使用 BeginInvoke 调用的网络任务未执行

    我使用 Visual Studio 2013 构建了一个具有单个表单的 C 应用程序 并且该应用程序有两个更新屏幕的例程 更新屏幕的例程需要在主线程上运行 因此我自己的线程 不与屏幕交互 在需要更新时调用主窗体上的 BeginInvoke
  • Lua中如何在另一个表的表成员中搜索

    我正在编写一个 lua 程序 它有一个表 该表是另一个表的成员 当我向该成员表添加新日期时 一切正常 但是 当我想在该表中搜索时 无论我给出什么键 我总是会将最后一行添加到表中 如何在该成员表中正确搜索 Stream name functi
  • 防止 iOS 上的反射(objc/运行时)

    我正在开发一个处理敏感数据的静态库 使用该库的开发人员必须不能在该库上使用反射 在Android上 我们通过开发一个来解决这个问题aar文件与service并运行service进入单独的进程 当服务运行到另一个进程中时 开发人员不能使用反射
  • 当用户在单元格中输入触发器时执行子例程

    Excel 中的示例数据 A B C 1 9 5 2 4 y 3 3 1 9 4 66 4 5 5 9 我想做的是当我进入Y在 B 列中 我想要 一些东西 执行 我不认为If Active Cell Y将在这里工作 因为当我进入Y然后按 E
  • 如何对搜索引擎关键词进行聚类?

    从 Google Analytics 中 我有一个 长 关键字列表 人们在搜索引擎中使用这些关键字来查找我的网站 我想找到 核心关键词 假设的例子 java online training learning java scala train
  • 使用rvest或httr登录网页上的非标准表单

    我正在尝试使用 rvest 来抓取需要在表单上输入电子邮件 密码登录的网页 rm list ls library rvest Trying to sign into a form using email password url lt ht
  • 如何通过 Grunt 运行节点脚本?

    我希望通过我的 gruntfile 运行节点命令 我只需要运行 node index js 作为任何其他任务之前的第一个任务 我尝试四处寻找但没有找到答案 我相信这可能很简单 但我不确定如何做 我需要加载 nmp 任务吗 这就是我的 Gru
  • 如何在 Android 中从 JPEG 创建动画 GIF(开发)

    我正在寻找一种简单的方法create本机 Android 应用程序中的动画 GIF 源文件应为 JPEG 来自相机或其他文件 输出应在设备上保存为 GIF 我不想知道如何播放动画或动画 GIF 文件 需要明确的是 我想知道如何将单个图像逐帧
  • 写入结果电子表格时,AGGREGATE 公式不会自动计算

    我有一个使用 OPENPYXL v2 5 10 库开发的 python 3 7 脚本 用于从多个 Excel 工作簿中获取数据 处理该数据 然后写入单独的 Excel 工作簿 结果工作簿包含大约 100 个命名范围和大量公式 所有这些都按预
  • 证明后继者对等式的替代性质

    我试图理解归纳类型 精益中的定理证明 第 7 章 https leanprover github io theorem proving in lean 07 Inductive Types html 我给自己设定了一个任务 证明自然数的后继
  • 如何在 Android 中将一种跨度类型更改为另一种跨度类型?

    我想将一种类型的所有跨度放入一个CharSequence并将它们转换为不同的类型 例如 将所有粗体跨度转换为下划线跨度 我该怎么做呢 这是我今天遇到的问题 既然我现在已经解决了 我在这里添加一个问答对 我的答案如下 如何将跨度从一种类型更改
  • PapaParse 与 Angular JS

    喜欢 PapaParse 漂亮的 CSV 解析器和解解析器 任何人都可以帮助我将其与 Angular JS 结合起来吗 我喜欢让 PapaParse 以 Angular 方式工作 正在尝试解决方案 实际上我没有做任何花哨的事情来加载它 只需
  • Xamarin 中 QR 扫描后的处理对话框

    我在Xamarin应用程序中使用QR码扫描仪 当它扫描QR码时 它会执行一些操作 大约需要一分钟 而在执行操作时 我想在屏幕上显示一个加载对话框 但是 它没有显示在屏幕上 并且在应用程序的其他地方 它运行得很好 Code var expec