商店可能会提供不适合普通跨平台购买流程的独特功能。这些扩展功能可通过IExtensionProvider
访问,该提供程序在Unity IAPUnity 应用内购买的缩写
请参阅术语表成功初始化时提供给您的应用程序。
使用扩展时无需使用平台相关的编译;每个扩展都带有一个伪无操作实现,在运行不支持扩展功能的平台上时使用。
例如,以下代码片段访问 Apple 提供的RefreshReceipt
机制,以从 Apple 的服务器获取更新的应用收据。它可以在任何 Unity IAP 平台上编译,如果您在非 Apple 平台(如 Android)上运行它,则不会有任何效果;提供的 lambda 表达式永远不会被调用。
/// <summary>
/// Called when Unity IAP is ready to make purchases.
/// </summary>
public void OnInitialized (IStoreController controller, IExtensionProvider extensions)
{
extensions.GetExtension<IAppleExtensions> ().RefreshAppReceipt (result => {
if (result) {
// Refresh finished successfully.
} else {
// Refresh failed.
}
});
}