/// <summary> /// Initializes the Store Kit with the set of previously defined product /// Products can be defined under the editor plugin settings: Stan's Assets->IOS Native->Edit Settings /// Or you can add product's via code using <see cref="RegisterProduct"/> /// </summary> /// <param name="products">List of the products to initialize the service with.</param> /// <param name="callback">Callback with the initialization result.</param> public static void Init(List <ISN_SKProduct> products, Action <ISN_SKInitResult> callback) { if (m_successInitResultCache != null) { callback.Invoke(m_successInitResultCache); return; } m_onStoreKitInitComplete += callback; if (m_isInitializationInProgress) { return; } m_isInitializationInProgress = true; var request = new ISN_SKLib.SA_PluginSettingsWindowStylesitRequest(); foreach (var product in products) { request.ProductIdentifiers.Add(product.ProductIdentifier); } ISN_SKLib.API.LoadStore(request, result => { m_isInitializationInProgress = false; if (result.IsSucceeded) { CacheAppStoreProducts(result); m_successInitResultCache = result; } m_onStoreKitInitComplete.Invoke(result); m_onStoreKitInitComplete = delegate {}; }); }
private static void CacheAppStoreProducts(ISN_SKInitResult result) { m_products.Clear(); foreach (ISN_SKProduct product in result.Products) { ISN_SKProduct settingsProduct = GetProductFromSettings(product.ProductIdentifier); if (settingsProduct != null) { product.EditorData = settingsProduct.EditorData; } m_products.Add(product.ProductIdentifier, product); } }