Интеграция Plaid с формами Xamarin

Поскольку я собираюсь начать новый проект Xamarin и хочу интегрировать клиент Plaid с этим проектом. Клиенту необходимо создать этот проект с помощью форм Xamarin (iOS и Android). Не могли бы вы прислать мне какой-нибудь учебник или документ, в котором можно найти ссылку на интеграцию Plaid в Xamarin Forms (iOS и Android).


person PRASAD CP    schedule 30.03.2020    source источник
comment
Взгляните на github.com/jamesmontemagno/InAppBillingPlugin.   -  person Oscar Emilio Perez Martinez    schedule 30.03.2020
comment
Привет, я получил ответ.   -  person PRASAD CP    schedule 31.03.2020
comment
Если вы исправили эту проблему, опубликуйте свое решение, чтобы ответить, это поможет другим, у кого есть аналогичная проблема.   -  person Leon Lu - MSFT    schedule 31.03.2020
comment
Я добавил ответ.   -  person PRASAD CP    schedule 31.03.2020
comment
для iOS версии 13.5 или более поздней вам потребуются дополнительные аргументы mtouch, чтобы предотвратить ошибку ITMS-90809. github.com/ijeong1787fp/Plaid-Link-XamarinForms   -  person Ilnam Jeong    schedule 18.07.2020


Ответы (1)


Да, я получил ответ..

для этого нам нужно внести изменения в классы info.plist и AssemblyInfo.cs в проекте iOS. Ниже приведены изменения, которые необходимо внести.

@ для iOS вам нужно добавить ключ NSAllowsArbitaryLoads в значение YES в словаре NSAppTransportSecurity в вашем файле info.plist.

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

@ UIWebview устарел с iOS 13. Поэтому вам нужно использовать wkwebview вместо webview. добавьте следующий код в файл AssemblyInfo.cs в проекте платформы iOS для приложения.

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

И на вашей странице /UI добавьте веб-представление и назовите его «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;
                    }
                }
            };
        }
    }
}

Прежде чем сделать это, вы должны настроить свою учетную запись на сайте Plaid. Там вы получите несколько ключей, которые вы должны добавить в приведенный выше код.

person PRASAD CP    schedule 31.03.2020
comment
Спасибо, что поделились, пожалуйста, отметьте свой ответ как ответ, это поможет другим, у кого есть похожая проблема. - person Leon Lu - MSFT; 08.04.2020