123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310 |
- using cn.sharesdk.unity3d;
- using UnityEngine;
- using UnityEngine.UI;
- using UnityEngine.Events;
- using UnityEngine.Purchasing;
- using UnityEngine.Advertisements;
- using UnityEngine.Purchasing.Extension;
- using System;
- using System.IO;
- using System.Collections;
- using System.Collections.Generic;
- public class ManaIAP : MonoBehaviour, IStoreListener
- {
- #region 变量
- public static bool Complete;
- public static ManaIAP Instance;
- public static UnityAction AdAction;
- public static IStoreController IStoreController;
- public static IExtensionProvider IExtensionProvider;
- public static List<string> ProductList = new List<string>();
- public static Dictionary<string, UnityAction> ProductDic = new Dictionary<string, UnityAction>();
- #region Share配置
- public static string ImageUrl = "http://or5zgoeui.bkt.clouddn.com/game_icon.png";
- public static ShareSDK ShareSdk;
- #endregion
- #endregion
- public void Awake()
- {
- Instance = this;
- }
- public static void Initialize()
- {
- InitializeAD();
- GameObject.Find("I_Lab").GetComponent<Text>().text = "AD";
- InitializeIAP();
- GameObject.Find("I_Lab").GetComponent<Text>().text = "IAP";
- InitializeShare();
- GameObject.Find("I_Lab").GetComponent<Text>().text = "Share";
- InitializeDataEyeGA();
- GameObject.Find("I_Lab").GetComponent<Text>().text = "DataEyeGA";
- }
- public static void InitializeAD()
- {
- if (Application.platform == RuntimePlatform.IPhonePlayer)
- {
- Advertisement.Initialize("1408492", false);
- }
- else if (Application.isMobilePlatform)
- {
- Advertisement.Initialize("1408493", false);
- }
- else if (Application.isEditor)
- {
- Advertisement.Initialize("1408493", false);
- }
- //初始化vungle
- VungleAdsManager.Instance.Init(()=>{
- AdAction.Invoke();
- ManaCenter.AdAmt++;
- });
- //初始化OneWay
- OneWayAdsManager.Instance.Init(()=>{
- AdAction.Invoke();
- ManaCenter.AdAmt++;
- });
- }
- public static void InitializeIAP()
- {
- ConfigurationBuilder cb = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance());
-
- cb.AddProduct("Test", ProductType.Consumable);
- ProductList.Add("Test");
- UnityPurchasing.Initialize(Instance, cb);
- }
- public static void InitializeShare()
- {
- if (Application.isMobilePlatform || Application.platform == RuntimePlatform.IPhonePlayer)
- {
- ShareSdk = Instance.gameObject.AddComponent<ShareSDK>();
- ShareSdk.Initialize();
- ShareSdk.shareHandler = ShareCallback;
- }
- }
- public static void InitializeDataEyeGA()
- {
- if (Application.platform == RuntimePlatform.IPhonePlayer)
- {
- DataEyeGA.Init("C5790DBD2CFE97BD18C7BE9A95482C05", DataEyeGA.PlatformType.IOS, "Official", "IOS");
- }
- else if (Application.isMobilePlatform)
- {
- DataEyeGA.Init("ADE884FAAF61A2CB45B02431A70932B8", DataEyeGA.PlatformType.ADR, "Official", "Android");
- }
- else if (Application.isEditor)
- {
- DataEyeGA.Init("ADE884FAAF61A2CB45B02431A70932B8", DataEyeGA.PlatformType.WP, "Official", "Windows");
- }
- }
- public static void PlayAD(UnityAction action)
- {
- AdAction = () =>
- {
- action.Invoke();
- StaticsManager.GetInstance().AdFinished();
- };
- if (Advertisement.IsReady())
- {
- ManaCenter.ReactiveLock = true;
- ShowOptions showOptions = new ShowOptions();
- showOptions.resultCallback = CallbackAD;
- Advertisement.Show(showOptions);
- StaticsManager.GetInstance().AdChannel(0);
- }
- else
- {
- // Bubble.Show(null, Language.GetStr("IAP", "LoadAd"));
- //Unity广告加载失败,自动加载vungle广告,并且再次初始化unity广告
- if (VungleAdsManager.Instance.CheckAd())
- {
- VungleAdsManager.Instance.PlayAd();
- StaticsManager.GetInstance().AdChannel(1);
- }
- else
- {
- OneWayAdsManager.Instance.PlayAd();
- StaticsManager.GetInstance().AdChannel(2);
- }
- if (!Advertisement.isInitialized)
- {
- InitializeAD();
- }
- }
- }
-
- public static void CallbackAD(ShowResult showResult)
- {
- if (showResult == ShowResult.Finished)
- {
- AdAction.Invoke();
- ManaCenter.AdAmt++;
- }
- else if (showResult == ShowResult.Skipped)
- {
- Bubble.Show(null, Language.GetStr("IAP", "IncompleteAd"));
- }
- else if (showResult == ShowResult.Failed)
- {
- Bubble.Show(null, Language.GetStr("IAP", "FailAd"));
- }
- }
- public static void Purchase(string id)
- {
- bool freeze = true;
- if (freeze)
- {
- Bubble.Show(null, Language.GetStr("IAP", "TemporarilyUnavailible"));
- return;
- }
-
- if (!Complete)
- {
- Bubble.Show(null, Language.GetStr("IAP", "PurchaseFail"));
- return;
- }
- if (!ProductList.Contains(id))
- {
- Bubble.Show(null, Language.GetStr("IAP", "PurchaseUnvalid"));
- return;
- }
- IStoreController.InitiatePurchase(id);
- }
- public void OnInitialized(IStoreController controller, IExtensionProvider extensions)
- {
- Complete = true;
- IStoreController = controller;
- IExtensionProvider = extensions;
- ManaDebug.Log("初始化IAP成功");
- }
- public void OnInitializeFailed(InitializationFailureReason error)
- {
- Complete = false;
- Debug.Log("初始化IAP失败");
- ManaDebug.Log("初始化IAP失败");
- }
- public void OnPurchaseFailed(Product i, PurchaseFailureReason p)
- {
- Bubble.Show(null, Language.GetStr("IAP", "PurchaseFail"));
- }
- public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs e)
- {
- Bubble.Show(null, Language.GetStr("IAP", "PurchaseSuccess"));
- ProductDic[e.purchasedProduct.definition.id].Invoke();
- return PurchaseProcessingResult.Complete;
- }
- public static void Share()
- {
- ShareContent shareContent = new ShareContent();
- shareContent.SetText(Language.GetStr("Common", "ShareContent"));
- shareContent.SetTitle(Language.GetStr("Common", "ShareTit"));
- shareContent.SetUrl(Language.GetShareUrl());
- shareContent.SetImageUrl(ImageUrl);
- shareContent.SetShareType(ContentType.App);
- ShareSdk.ShowPlatformList(null, shareContent, 100, 100);
- }
- public static void Authorize()
- {
- ShareSdk.Authorize(PlatformType.QQ);
- }
- public static void ShareCallback(int reqID, ResponseState state, PlatformType type, Hashtable result)
- {
- if (state == ResponseState.Success)
- {
- ManaCenter.ShareAmt++;
-
- Bubble.Show(null, Language.GetStr("Common", "ShareSuccess"));
- }
- else if (state == ResponseState.Fail)
- {
- Bubble.Show(null, Language.GetStr("Common", "ShareFail"));
- }
- else if (state == ResponseState.Cancel)
- {
- Bubble.Show(null, Language.GetStr("Common", "ShareFail"));
- }
- }
- public static void AuthorizeCallback(int reqID, ResponseState state, PlatformType type, Hashtable result)
- {
- if (state == ResponseState.Success)
- {
- print("Success");
- }
- else if (state == ResponseState.Fail)
- {
- print("Fail");
- }
- else if (state == ResponseState.Cancel)
- {
- print("Cancel");
- }
- }
- }
|