c# - 在 android 中扫描 QR 码后停止 instascan 提醒手机

标签 c# android asp.net qr-code instascan

我有一个使用 instascan 扫描 QR 码的应用程序,但每次您在 Android 手机上扫描 QR 码时,都会弹出带有解码结果的警报。例如,如果我生成一个带有文本“我喜欢香蕉”的 QR 码,那么警报会显示“https://mywebsite.com 说我喜欢香蕉”。

有什么方法可以阻止显示此警报?它不会发生在我的笔记本电脑或平板电脑上,只会发生在我的手机上。如果您想查看,这是我的代码:

    <video id="preview" visible="true"></video>
    <script type="text/javascript">
        let scanner = new Instascan.Scanner({ video: document.getElementById('preview') });
        //When a QR code is detected
        scanner.addListener('scan', function (content) {
            //If it is a url
            if (content.match(/^http?:\/\//i)) {
                //Redirect to new page
                window.open(content);
            } else {                    
                var options = {};
                options.url = "CameraList.aspx/GetContent";
                options.type = "POST";
                options.data = JSON.stringify({ content });
                options.dataType = "json";
                options.contentType = "application/json";
                options.success = function (result) { };
                options.error = function (err) { };

                $.ajax(options);
            }
        });
    </script>

感谢任何帮助。

最佳答案

我是根据这篇文章弄明白的:Stop alert javascript popup in webbrowser c# control

我想从名为 GetContent 的方法返回一个字符串,并仅在该字符串不为空时才向用户发出警告:

        //write a new function for alert that expects a boolean value
        var fnAlert = alert;
        alert = function (message, doshow) {
        //only if you pass true show the alert
            if (doshow === true) {
                fnAlert(message);
            }
        }
        let scanner = new Instascan.Scanner({ video: document.getElementById('preview') });
        //When a QR code is detected
        scanner.addListener('scan', function (content) {
            //If it is a url
            if (content.match(/^http?:\/\//i)) {
                //Redirect to new page
                window.open(content);
            } else {                    
                var options = {};
                options.url = "CameraList.aspx/GetContent";
                options.type = "POST";
                options.data = JSON.stringify({ content });
                options.dataType = "json";
                options.contentType = "application/json";
                options.success = function (result) {
                    //If my c# method GetContent returns a value
                    if (result != "") {
                        //then alert the user by passing true
                        alert(result, true);
                    }
                };
                options.error = function (err) { };

                $.ajax(options);
            }
        });

关于c# - 在 android 中扫描 QR 码后停止 instascan 提醒手机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66555766/

相关文章:

jquery - 选项卡不适用于生成的服务 ID

c# - 适用于 iis6 和 iis7 的 Web 项目 MSI

c# - 使用 Impala ODBC 驱动程序查询参数

c# - 是否可以在 VisualStateManager 中修改静态资源?

android - 如何为 LinearLayout 背景图像赋予形状?

android - 如何使用代码进行联系人备份?

c# - 覆盖身份验证属性的用途是什么?

c# - 在悬停时定位元素 - WPF - C# - 动态数据显示

c# - 不同的行为取决于缓冲区的大小

android - 在 Android 中查看 holder 类