gpt4 book ai didi

android - 在 Xamarin Android 应用程序中集成和使用 .pkpass 通行证

转载 作者:行者123 更新时间:2023-11-29 17:47:45 26 4
gpt4 key购买 nike

我正在开发 Xamarin Android 应用程序,我需要能够使用通行证(例如 PassKit 通行证 (JSON))。我需要能够在 ListVew 中列出所有通行证并能够打开和显示通行证。还可以将它们保存到 PassWallet 或 Pass2u 等钱包中。我不需要创建它们的能力,只需查看它们并将它们保存到钱包或丢弃它们。

似乎有一个示例 Xamarin iOS 应用程序可以完全满足我的需要 here但我当然需要能够在 Xamarin Android 中执行此操作。

我已经为此研究了几个小时,但不知道如何实现我的需要。 JSON.net 似乎是读取通行证的方式,但这是我设法获得的。一些例子会很棒。有人可以帮忙吗?

最佳答案

要将通行证添加到 PassWallet 中,您可以使用以下方法:

private static boolean launchPassWallet(Context applicationContext, Uri uri, boolean launchGooglePlay) {
if (null != applicationContext) {
PackageManager packageManager = applicationContext.getPackageManager();
if (null != packageManager) {
final String strPackageName = "com.attidomobile.passwallet";
Intent startIntent = new Intent();
startIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startIntent.setAction(Intent.ACTION_VIEW);
Intent passWalletLaunchIntent = packageManager
.getLaunchIntentForPackage(strPackageName);
if (null == passWalletLaunchIntent) {
// PassWallet isn't installed, open Google Play:
if (launchGooglePlay) {

String strReferrer = "";

try {
strReferrer = "&referrer=" + URLEncoder.encode(uri.toString(), "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
strReferrer = "";
}

try {
startIntent.setData(Uri.parse("market://details?id=" + strPackageName + strReferrer));
applicationContext.startActivity(startIntent);
} catch (android.content.ActivityNotFoundException anfe) {
// Google Play not installed, open via website
startIntent.setData(Uri.parse("http://play.google.com/store/apps/details?id=" + strPackageName + strReferrer));
applicationContext.startActivity(startIntent);
}
}
} else {

final String strClassName = "com.attidomobile.passwallet.activity.TicketDetailActivity";
startIntent.setClassName(strPackageName, strClassName);
startIntent.addCategory(Intent.CATEGORY_BROWSABLE);
startIntent.setDataAndType(uri, "application/vnd.apple.pkpass");

applicationContext.startActivity(startIntent);

return true;
}
}
}
return false;
}

一个示例调用是:

launchPassWallet(getApplicationContext(),Uri.parse("http://test.attidomobile.com/PassWallet/Passes/AttidoMobile.pkpass"), true); 

如果本地有文件,您也可以使用 file://URL。

要在列表中显示它们,您需要解压缩 .pkpass 文件,然后解析相关字段的 JSON。

关于android - 在 Xamarin Android 应用程序中集成和使用 .pkpass 通行证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25243333/

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