343 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			343 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | using System; | |||
|  | using System.Collections; | |||
|  | using System.Collections.Generic; | |||
|  | using UnityEngine; | |||
|  | using AnyThinkAds.Common; | |||
|  | using AnyThinkAds.Api; | |||
|  | 
 | |||
|  | namespace AnyThinkAds.Android | |||
|  | { | |||
|  |     public class ATNativeAdClient : AndroidJavaProxy, IATNativeAdClient | |||
|  |     { | |||
|  | 		public event EventHandler<ATAdEventArgs>            onAdLoadEvent; | |||
|  |         public event EventHandler<ATAdErrorEventArgs>       onAdLoadFailureEvent; | |||
|  |         public event EventHandler<ATAdEventArgs>            onAdImpressEvent; | |||
|  |         public event EventHandler<ATAdEventArgs>            onAdClickEvent; | |||
|  |         public event EventHandler<ATAdEventArgs>            onAdVideoStartEvent; | |||
|  |         public event EventHandler<ATAdEventArgs>            onAdVideoEndEvent; | |||
|  |         public event EventHandler<ATAdProgressEventArgs>    onAdVideoProgressEvent; | |||
|  |         public event EventHandler<ATAdEventArgs>            onAdCloseEvent; | |||
|  |         public event EventHandler<ATAdEventArgs>            onAdSourceAttemptEvent; | |||
|  |         public event EventHandler<ATAdEventArgs>            onAdSourceFilledEvent; | |||
|  |         public event EventHandler<ATAdErrorEventArgs>       onAdSourceLoadFailureEvent; | |||
|  |         public event EventHandler<ATAdEventArgs>            onAdSourceBiddingAttemptEvent; | |||
|  |         public event EventHandler<ATAdEventArgs>            onAdSourceBiddingFilledEvent; | |||
|  |         public event EventHandler<ATAdErrorEventArgs>       onAdSourceBiddingFailureEvent; | |||
|  | 
 | |||
|  |         private Dictionary<string, AndroidJavaObject> nativeAdHelperMap = new Dictionary<string, AndroidJavaObject>(); | |||
|  |         private ATNativeAdListener mlistener; | |||
|  | 
 | |||
|  |         public ATNativeAdClient(): base("com.thinkup.unitybridge.nativead.NativeListener") | |||
|  |         { | |||
|  | 
 | |||
|  |         } | |||
|  | 
 | |||
|  |         public void loadNativeAd(string placementId, string mapJson) | |||
|  |         { | |||
|  | 			Debug.Log ("loadNativeAd....jsonmap:"+mapJson); | |||
|  |             if(!nativeAdHelperMap.ContainsKey(placementId)){ | |||
|  |                 AndroidJavaObject nativeHelper = new AndroidJavaObject( | |||
|  |                     "com.thinkup.unitybridge.nativead.NativeHelper", this); | |||
|  |                 nativeHelper.Call("initNative", placementId); | |||
|  |                 nativeAdHelperMap.Add(placementId, nativeHelper); | |||
|  |             } | |||
|  | 			try{ | |||
|  |                 if (nativeAdHelperMap.ContainsKey(placementId)) { | |||
|  |                     nativeAdHelperMap[placementId].Call ("loadNative",mapJson); | |||
|  | 				} | |||
|  | 			}catch(System.Exception e){ | |||
|  | 				System.Console.WriteLine("Exception caught: {0}", e); | |||
|  | 				Debug.Log ("ATNativeAdClient :  error."+e.Message); | |||
|  | 			} | |||
|  |         } | |||
|  | 
 | |||
|  | 
 | |||
|  |         public bool hasAdReady(string placementId) | |||
|  |         { | |||
|  | 			bool isready = false; | |||
|  | 			Debug.Log ("hasAdReady...."); | |||
|  | 			try{ | |||
|  |                 if (nativeAdHelperMap.ContainsKey(placementId)) { | |||
|  |                     isready = nativeAdHelperMap[placementId].Call<bool> ("isAdReady"); | |||
|  | 				} | |||
|  | 			}catch(System.Exception e){ | |||
|  | 				System.Console.WriteLine("Exception caught: {0}", e); | |||
|  | 				Debug.Log ("ATNativeAdClient :  error."+e.Message); | |||
|  | 			} | |||
|  | 			return isready;    | |||
|  |         } | |||
|  |          | |||
|  |         public void entryScenarioWithPlacementID(string placementId, string scenarioID){ | |||
|  |             Debug.Log("ATNativeAdClient : entryScenarioWithPlacementID...."); | |||
|  |             try | |||
|  |             { | |||
|  |                 if (nativeAdHelperMap.ContainsKey(placementId)) | |||
|  |                 { | |||
|  |                     nativeAdHelperMap[placementId].Call("entryAdScenario", scenarioID); | |||
|  |                 } | |||
|  |             } | |||
|  |             catch (System.Exception e) | |||
|  |             { | |||
|  |                 System.Console.WriteLine("Exception caught: {0}", e); | |||
|  |                 Debug.Log("ATNativeAdClient entryScenarioWithPlacementID:  error." + e.Message); | |||
|  |             } | |||
|  | 
 | |||
|  | 
 | |||
|  |         } | |||
|  | 
 | |||
|  |         public string checkAdStatus(string placementId) | |||
|  |         { | |||
|  |             string adStatusJsonString = ""; | |||
|  |             Debug.Log("ATNativeAdClient : checkAdStatus...."); | |||
|  |             try | |||
|  |             { | |||
|  |                 if (nativeAdHelperMap.ContainsKey(placementId)) | |||
|  |                 { | |||
|  |                     adStatusJsonString = nativeAdHelperMap[placementId].Call<string>("checkAdStatus"); | |||
|  |                 } | |||
|  |             } | |||
|  |             catch (System.Exception e) | |||
|  |             { | |||
|  |                 System.Console.WriteLine("Exception caught: {0}", e); | |||
|  |                 Debug.Log("ATNativeAdClient :  error." + e.Message); | |||
|  |             } | |||
|  | 
 | |||
|  |             return adStatusJsonString; | |||
|  |         } | |||
|  | 
 | |||
|  |         public string getValidAdCaches(string placementId) | |||
|  |         { | |||
|  |             string validAdCachesString = ""; | |||
|  |             Debug.Log("ATNativeAdClient : getValidAdCaches...."); | |||
|  |             try | |||
|  |             { | |||
|  |                 if (nativeAdHelperMap.ContainsKey(placementId)) | |||
|  |                 { | |||
|  |                     validAdCachesString = nativeAdHelperMap[placementId].Call<string>("getValidAdCaches"); | |||
|  |                 } | |||
|  |             } | |||
|  |             catch (System.Exception e) | |||
|  |             { | |||
|  |                 System.Console.WriteLine("Exception caught: {0}", e); | |||
|  |                 Debug.Log("ATNativeAdClient :  error." + e.Message); | |||
|  |             } | |||
|  | 
 | |||
|  |             return validAdCachesString; | |||
|  |         } | |||
|  | 
 | |||
|  |         public void setListener(ATNativeAdListener listener) | |||
|  |         { | |||
|  |             mlistener = listener; | |||
|  |         } | |||
|  | 
 | |||
|  | 		public void renderAdToScene(string placementId, ATNativeAdView anyThinkNativeAdView, string mapJson) | |||
|  |         {	 | |||
|  | 			string showconfig = anyThinkNativeAdView.toJSON (); | |||
|  |             //暂未实现 show | |||
|  | 			Debug.Log ("renderAdToScene....showconfig >>>:"+showconfig); | |||
|  | 			try{ | |||
|  |                 if (nativeAdHelperMap.ContainsKey(placementId)) { | |||
|  |                     nativeAdHelperMap[placementId].Call ("show",showconfig, mapJson); | |||
|  | 				} | |||
|  | 			}catch(System.Exception e){ | |||
|  | 				Debug.Log ("ATNativeAdClient :  error."+e.Message); | |||
|  | 				System.Console.WriteLine("Exception caught: {0}", e); | |||
|  | 			} | |||
|  |         } | |||
|  | 
 | |||
|  |         public void cleanAdView(string placementId, ATNativeAdView anyThinkNativeAdView) | |||
|  |         { | |||
|  |            // | |||
|  | 			Debug.Log ("cleanAdView.... "); | |||
|  | 			try{ | |||
|  | 
 | |||
|  | 				if (nativeAdHelperMap.ContainsKey(placementId)) { | |||
|  | 					nativeAdHelperMap[placementId].Call ("cleanView"); | |||
|  | 				} | |||
|  | 
 | |||
|  | 			}catch(System.Exception e){ | |||
|  | 				System.Console.WriteLine("Exception caught: {0}", e); | |||
|  | 				Debug.Log ("ATNativeAdClient :  error."+e.Message); | |||
|  | 			} | |||
|  |         } | |||
|  | 
 | |||
|  |         public void onApplicationForces(string placementId, ATNativeAdView anyThinkNativeAdView) | |||
|  |         { | |||
|  | 
 | |||
|  | 
 | |||
|  | 			Debug.Log ("onApplicationForces.... "); | |||
|  | 			try{ | |||
|  | 
 | |||
|  | 				if (nativeAdHelperMap.ContainsKey(placementId)) { | |||
|  | 					nativeAdHelperMap[placementId].Call ("onResume"); | |||
|  | 				} | |||
|  | 
 | |||
|  | 			}catch(System.Exception e){ | |||
|  | 				System.Console.WriteLine("Exception caught: {0}", e); | |||
|  | 				Debug.Log ("ATNativeAdClient :  error."+e.Message); | |||
|  | 			} | |||
|  |         } | |||
|  | 
 | |||
|  | 
 | |||
|  |         public void onApplicationPasue(string placementId, ATNativeAdView anyThinkNativeAdView) | |||
|  |         { | |||
|  | 
 | |||
|  | 			Debug.Log ("onApplicationPasue.... "); | |||
|  | 			try{ | |||
|  | 				 | |||
|  | 
 | |||
|  | 				if (nativeAdHelperMap.ContainsKey(placementId)) { | |||
|  | 					nativeAdHelperMap[placementId].Call ("onPause"); | |||
|  | 				} | |||
|  | 			}catch(System.Exception e){ | |||
|  | 				System.Console.WriteLine("Exception caught: {0}", e); | |||
|  | 				Debug.Log ("ATNativeAdClient :  error."+e.Message); | |||
|  | 			} | |||
|  |         } | |||
|  | 
 | |||
|  |         public void cleanCache(string placementId) | |||
|  |         { | |||
|  | 			Debug.Log ("cleanCache...."); | |||
|  | 			try{ | |||
|  |                 if (nativeAdHelperMap.ContainsKey(placementId)) { | |||
|  |                     nativeAdHelperMap[placementId].Call ("clean"); | |||
|  | 				} | |||
|  | 			}catch(System.Exception e){ | |||
|  | 				System.Console.WriteLine("Exception caught: {0}", e); | |||
|  | 				Debug.Log ("ATNativeAdClient :  error."+e.Message); | |||
|  | 			} | |||
|  |         } | |||
|  | 
 | |||
|  |         /** | |||
|  |      * 广告展示回调 | |||
|  |      * | |||
|  |      * @param view | |||
|  |      */ | |||
|  |         public void onAdImpressed(string placementId, string callbackJson) | |||
|  |         { | |||
|  |             Debug.Log("onAdImpressed...unity3d."); | |||
|  |             onAdImpressEvent?.Invoke(this, new ATAdEventArgs(placementId,callbackJson)); | |||
|  |         } | |||
|  | 
 | |||
|  |         /** | |||
|  |      * 广告点击回调 | |||
|  |      * | |||
|  |      * @param view | |||
|  |      */ | |||
|  |         public void onAdClicked(string placementId, string callbackJson) | |||
|  |         { | |||
|  |             Debug.Log("onAdClicked...unity3d."); | |||
|  |              onAdClickEvent?.Invoke(this, new ATAdEventArgs(placementId,callbackJson)); | |||
|  |           | |||
|  |         } | |||
|  | 
 | |||
|  |         /** | |||
|  |      * 广告视频开始回调 | |||
|  |      * | |||
|  |      * @param view | |||
|  |      */ | |||
|  |         public void onAdVideoStart(string placementId) | |||
|  |         { | |||
|  |             Debug.Log("onAdVideoStart...unity3d."); | |||
|  |            onAdVideoStartEvent?.Invoke(this, new ATAdEventArgs(placementId)); | |||
|  |         } | |||
|  | 
 | |||
|  |         /** | |||
|  |      * 广告视频结束回调 | |||
|  |      * | |||
|  |      * @param view | |||
|  |      */ | |||
|  |         public void onAdVideoEnd(string placementId) | |||
|  |         { | |||
|  |             Debug.Log("onAdVideoEnd...unity3d."); | |||
|  |             onAdVideoEndEvent?.Invoke(this, new ATAdEventArgs(placementId,"")); | |||
|  |         } | |||
|  | 
 | |||
|  |         /** | |||
|  |      * 广告视频进度回调 | |||
|  |      * | |||
|  |      * @param view | |||
|  |      */ | |||
|  |         public void onAdVideoProgress(string placementId,int progress) | |||
|  |         { | |||
|  |             Debug.Log("onAdVideoProgress...progress[" + progress + "]"); | |||
|  |            onAdVideoProgressEvent?.Invoke(this, new ATAdProgressEventArgs(placementId,"",progress)); | |||
|  |         } | |||
|  | 
 | |||
|  |         /** | |||
|  |    * 广告视频进度回调 | |||
|  |    * | |||
|  |    * @param view | |||
|  |    */ | |||
|  |         public void onAdCloseButtonClicked(string placementId, string callbackJson) | |||
|  |         { | |||
|  |             Debug.Log("onAdCloseButtonClicked...unity3d"); | |||
|  |           onAdCloseEvent?.Invoke(this, new ATAdEventArgs(placementId,callbackJson)); | |||
|  |         } | |||
|  | 
 | |||
|  | 
 | |||
|  |         /** | |||
|  |      * 广告加载成功 | |||
|  |      */ | |||
|  |         public void onNativeAdLoaded(string placementId) | |||
|  |         { | |||
|  |             Debug.Log("onNativeAdLoaded...unity3d."); | |||
|  |              onAdLoadEvent?.Invoke(this, new ATAdEventArgs(placementId,"")); | |||
|  | 
 | |||
|  |         } | |||
|  | 
 | |||
|  |         /** | |||
|  |      * 广告加载失败 | |||
|  |      */ | |||
|  |         public void onNativeAdLoadFail(string placementId,string code, string msg) | |||
|  |         { | |||
|  |             Debug.Log("onNativeAdLoadFail...unity3d. code:" + code + " msg:" + msg); | |||
|  |             onAdLoadFailureEvent?.Invoke(this, new ATAdErrorEventArgs(placementId,code,msg)); | |||
|  |         } | |||
|  | 
 | |||
|  |         // Adsource Listener | |||
|  |         public void onAdSourceBiddingAttempt(string placementId, string callbackJson) | |||
|  |         { | |||
|  |             Debug.Log("onAdSourceBiddingAttempt...unity3d." + placementId + "," + callbackJson); | |||
|  |              | |||
|  |                onAdSourceBiddingAttemptEvent?.Invoke(this, new ATAdEventArgs(placementId,callbackJson)); | |||
|  |         } | |||
|  | 
 | |||
|  |         public void onAdSourceBiddingFilled(string placementId, string callbackJson) | |||
|  |         { | |||
|  |             Debug.Log("onAdSourceBiddingFilled...unity3d." + placementId + "," + callbackJson); | |||
|  |             | |||
|  |             onAdSourceBiddingFilledEvent?.Invoke(this, new ATAdEventArgs(placementId,callbackJson)); | |||
|  |         } | |||
|  | 
 | |||
|  |         public void onAdSourceBiddingFail(string placementId, string callbackJson, string code, string error) | |||
|  |         { | |||
|  |             Debug.Log("onAdSourceBiddingFail...unity3d." + placementId + "," + code + "," + error + "," + callbackJson); | |||
|  |              | |||
|  |              onAdSourceBiddingFailureEvent?.Invoke(this, new ATAdErrorEventArgs(placementId,callbackJson,code,error)); | |||
|  |         } | |||
|  | 
 | |||
|  |         public void onAdSourceAttempt(string placementId, string callbackJson) | |||
|  |         { | |||
|  |             Debug.Log("onAdSourceAttempt...unity3d." + placementId + "," + callbackJson); | |||
|  | 
 | |||
|  |             onAdSourceAttemptEvent?.Invoke(this, new ATAdEventArgs(placementId,callbackJson)); | |||
|  |         } | |||
|  | 
 | |||
|  |         public void onAdSourceLoadFilled(string placementId, string callbackJson) | |||
|  |         { | |||
|  |             Debug.Log("onAdSourceLoadFilled...unity3d." + placementId + "," + callbackJson); | |||
|  |             | |||
|  |             onAdSourceFilledEvent?.Invoke(this, new ATAdEventArgs(placementId,callbackJson)); | |||
|  |         } | |||
|  | 
 | |||
|  |         public void onAdSourceLoadFail(string placementId, string callbackJson, string code, string error) | |||
|  |         { | |||
|  |             Debug.Log("onAdSourceLoadFail...unity3d." + placementId + "," + code + "," + error + "," + callbackJson); | |||
|  |             onAdSourceLoadFailureEvent?.Invoke(this, new ATAdErrorEventArgs(placementId,callbackJson,code,error)); | |||
|  |         } | |||
|  | 
 | |||
|  | 
 | |||
|  |     } | |||
|  | } |