Поскольку я собираюсь начать новый проект Xamarin и хочу интегрировать клиент Plaid с этим проектом. Клиенту необходимо создать этот проект с помощью форм Xamarin (iOS и Android). Не могли бы вы прислать мне какой-нибудь учебник или документ, в котором можно найти ссылку на интеграцию Plaid в Xamarin Forms (iOS и Android).
Интеграция Plaid с формами Xamarin
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
Спасибо, что поделились, пожалуйста, отметьте свой ответ как ответ, это поможет другим, у кого есть похожая проблема.
- person Leon Lu - MSFT; 08.04.2020