gpt4 book ai didi

android-intent - BrainTree 上的 PayPal 集成(在 Xamarin.Forms 上)

转载 作者:太空宇宙 更新时间:2023-11-03 15:52:58 25 4
gpt4 key购买 nike

我正在尝试在 xamarin.forms 中使用 UI 中的下拉来实现 braintree。通过这样做,我创建了一个依赖服务来使用 iOS 或 Android 的相应代码。从 android 实现开始,我开始获取一个绑定(bind)包,允许我调用 Android v2 SDK 中的函数。除了 PayPal Integration 之外,一切似乎都有效。 BrainTree android binding

尝试点击 paypal 按钮不会导致出现任何 Activity ,并且 onActivityResult 会被调用并带有第一个用户结果代码,但异常(exception)情况

Com.Braintreepayments.Api.Exceptions.BraintreeException: BraintreeBrowserSwitchActivity missing, incorrectly configured in AndroidManifest.xml or another app defines the same browser switch url as this app. See https://developers.braintreepayments.com/guides/client-sdk/android/v2#browser-switch for the correct configuration

无法调试我得到异常的原因我能够模拟检查 - isManifestValid

isManifestValid 中,我能够检索 BraintreeBrowserSwitchActivityActivityInfo它只返回 false 因为 AppHelper.isIntentAvailable(fragment.getApplicationContext(), intent) 是 false

isManifestValid can be found here

isIntentAvailable context.getPackageManager().queryIntentActivities(intent, 0) 中返回了一个空列表,这让我认为 Intent 没有注册使用任何 Activity ,尽管有在我的 AndroidManifest 文件中声明了 URL 方案。 isIntentAvailable can be found here

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="1.3.16" package="com.company.abcmobileapp.android" android:installLocation="auto" android:versionCode="24">
<uses-sdk android:minSdkVersion="15" android:targetSdkVersion="23" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.USE_FINGERPRINT" />
<uses-permission android:name="com.samsung.android.providers.context.permission.WRITE_USE_APP_FEATURE_SURVEY" />
<application android:debuggable="false" android:label="ABC" android:theme="@android:style/Theme.Holo.Light" android:icon="@drawable/appicon" android:largeHeap="true" android:hardwareAccelerated="false">
<activity android:name="com.braintreepayments.api.BraintreeBrowserSwitchActivity"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="com.company.abcmobileapp.android.braintree" />
</intent-filter>
</activity>
<activity android:name="ShareActivity">
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />
</intent-filter>
</activity>
</application>
</manifest>

关于我可以做些什么来进一步调试或解决问题,是否有任何建议?非常感谢任何帮助,谢谢。

最佳答案

完全披露:我在 Braintree 工作。如果您有任何其他问题,请随时联系 support .

list 文件的格式符合 our documentation .您应该在 isIntentAvailable() 中设置一个断点检查 activities 对象以查看注册了哪些其他应用程序/Activity 来处理给定的 Intent 的方法。

public static boolean isIntentAvailable(Context context, Intent intent) {
List<ResolveInfo> activities = context.getPackageManager().queryIntentActivities(intent, 0);
return activities != null && activities.size() == 1;
}

您可能安装了另一个版本/构建的应用程序来监听相同的 URL 方案,或者 list 合并可能以某种方式最终声明它两次,这将导致此错误。

关于android-intent - BrainTree 上的 PayPal 集成(在 Xamarin.Forms 上),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48574010/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com