如何注册应用程序以处理从 xamarin 表单中的移动相机扫描的二维码

how to register app to handle QR code scanned from mobile camera in xamarin forms

我正在尝试制作一个功能,如果用户从移动相机或任何其他二维码扫描应用程序扫描二维码,它应该向用户显示他们已经安装了该应用程序以及他们是否想打开该应用程序。

感谢任何形式的帮助。谢谢。

Android:

MainActivity.cs

上方添加以下行
[IntentFilter(new[] { Intent.ActionView }, Categories = new[] { Intent.CategoryDefault, Intent.CategoryBrowsable },
DataScheme = "https", DataHost = "YourDomainName", AutoVerify = true, Icon = "@drawable/icon")]

OnCreate

var url = Intent?.Data?.ToString();

并通过 加载应用程序

iOS:

为 Apple 开发者帐户的标识符启用关联域 如果需要,重新生成开发和分发证书。下载并安装

创建名为 apple-app-site-association 的文件并将其添加到您域的根目录

apple-app-site-association 中:

 {
       "applinks": {
         "apps": [],
         "details": [
           {
             "appID": "YourAppId.YourBundleIdentifier",
             "paths": [ "*"]
           }
         ]
       }
}

Entitlements.plist: 启用关联域并添加“applinks:domainName”

appdelegate:

 public override bool ContinueUserActivity(UIApplication application, NSUserActivity userActivity, UIApplicationRestorationHandler completionHandler)
    {
        if (userActivity.ActivityType == "NSUserActivityTypeBrowsingWeb")
        {
            var url = userActivity.WebPageUrl.AbsoluteString;
            ((App)Xamarin.Forms.Application.Current).AppLinkRequest(url);
            return true;
        }
        return base.ContinueUserActivity(application, userActivity, completionHandler);
    }

    public override bool OpenUrl(UIApplication app, NSUrl url, NSDictionary options)
    {
        if (url.AbsoluteString != null)
        {
            ((App)Xamarin.Forms.Application.Current).AppLinkRequest(url.AbsoluteString);
            return true;
        }
        return base.OpenUrl(app, url, options);
    }

App.xaml.cs

in ctor

if (QRcodeURL != null)
{
// Android Implementation for handling QR code scanning
// Handle code
}

方法

public void AppLinkRequest(string url)
{
// iOS Implementation for handling QR code scanning
// Handle code
}