ios 与Xamarin表格集成的格子图案

3lxsmp7m  于 2023-01-14  发布在  iOS
关注(0)|答案(1)|浏览(113)

因为我将要开始一个新的Xamarin项目,我想集成格子客户端与该项目。客户需要建立该项目与Xamarin表单(iOS和Android)。你能给我一些教程或文档,可以参考在Xamarin表单(iOS和Android)集成格子。

gkn4icbw

gkn4icbw1#

我们需要更改iOS项目中的info.plist和assemblyInfo.cs类。
对于iOS,您需要在info.plist文件的NSAppTransportSecurity字典中将NSAllowsArbitaryLoads键添加为YES。

<key>NSAppTransportSecurity</key>
 <dict>
      <key>NSAllowsArbitraryLoads</key>
     <true/>
 </dict>

iOS 13中已弃用@ UIWebview。因此,您需要使用wkwebview而不是webview。将以下代码添加到应用程序的iOS平台项目中的AssemblyInfo.cs文件

// Opt-in to using WkWebView instead of UIWebView.
[assembly: ExportRenderer(typeof(WebView), typeof(Xamarin.Forms.Platform.iOS.WkWebViewRenderer))]

在你的页面/UI中添加web视图并命名为“webView”。在后面的代码中,添加以下代码。

using System;
using System.Diagnostics;
using System.Web;
using Foundation;
using Xamarin.Forms;

namespace PlaidLinkXamarinForms
{
    public partial class MainPage : ContentPage
    {
        public MainPage()
        {
            InitializeComponent();

            var publickey = "YOUR_PUBLIC_KEY";
            var env = "Sandbox"; //development, production
        var product = "auth"; //transactions, auth, identity, income, assets, investments, liabilities
            var clientName = "PlaidLinkXamarinForms"

            var url = "https://cdn.plaid.com/link/v2/stable/link.html?isWebview=true&key=" + publickey + "&env=" + env + "&product=" + product + "&selectAccount=true&clientName=" + clientName + "&isMobile=true";

            webView.Source = url;

            webView.Navigating += async (sender, e) =>
            {
                if (e.Url.ToLower().Contains("plaidlink:"))
                {
                    e.Cancel = true;
                }
                else
                {
                    e.Cancel = false;
                }
                var linkScheme = "plaidlink";
                var scheme = new Uri(e.Url);
                var param = HttpUtility.ParseQueryString(e.Url);

                var actionScheme = scheme.Scheme;
                var actionType = scheme.Host;

                if(actionScheme == linkScheme)
                {
                    switch (actionType)
                    {
                        case "connected":
                            Debug.WriteLine("Successfully Connected");
                            break;
                        case "exit":
                Debug.WriteLine("Exit");
                            break;
                        case "event":
                            Debug.WriteLine($"Event name: {param["event_name"]}");
                            break;
                        default:
                            Debug.WriteLine($"Link action detected: {actionType}");
                            break;
                    }
                }
            };
        }
    }
}

在此之前,你应该配置你的帐户格子网站。在那里你会得到一些关键,你必须添加到上述代码。

相关问题