Commit 5eb0cbaa authored by 王雪伟's avatar 王雪伟

加入掌心汇川广告 修改穿山甲banner轮询问题 修改关闭大图和bannner广告的问题

parent d16bc4c4
...@@ -4,6 +4,8 @@ using UnityEngine; ...@@ -4,6 +4,8 @@ using UnityEngine;
using System; using System;
using Tencent.GDT; using Tencent.GDT;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
using ByteDance.Union;
using ZXHC;
public class AdManager public class AdManager
{ {
...@@ -50,7 +52,7 @@ public class AdManager ...@@ -50,7 +52,7 @@ public class AdManager
private string AdLoadUrl = "v4/ads"; private string AdLoadUrl = "v4/ads";
private bool IsFirstLoadRewardAd = false; private bool IsFirstLoadRewardAd = false;
private bool IsFirstLoadFSAd = false; private bool IsFirstLoadFSAd = false;
public void InitAd() public void InitAd(Action<bool> callback)
{ {
IsFirstLoadRewardAd = true; IsFirstLoadRewardAd = true;
IsFirstLoadFSAd = true; IsFirstLoadFSAd = true;
...@@ -68,6 +70,8 @@ public class AdManager ...@@ -68,6 +70,8 @@ public class AdManager
#if UNITY_ANDROID #if UNITY_ANDROID
AndroidJavaClass jc = new AndroidJavaClass("com.unity.adcommon.unity.TTADManager"); AndroidJavaClass jc = new AndroidJavaClass("com.unity.adcommon.unity.TTADManager");
jc.CallStatic("init", id.codeAppId); jc.CallStatic("init", id.codeAppId);
//获取穿山甲权限
SDK.RequestPermissionIfNecessary();
#elif UNITY_IOS #elif UNITY_IOS
InitCSJSDK(id.codeAppId); InitCSJSDK(id.codeAppId);
#endif #endif
...@@ -85,17 +89,29 @@ public class AdManager ...@@ -85,17 +89,29 @@ public class AdManager
AndroidJavaClass jc2 = new AndroidJavaClass("com.unity.adcommon.unity.TTADManager"); AndroidJavaClass jc2 = new AndroidJavaClass("com.unity.adcommon.unity.TTADManager");
jc2.CallStatic("initYLB", id.codeAppId); jc2.CallStatic("initYLB", id.codeAppId);
} }
#endif
break;
case ZXADConfig.PLANTFORM_AD_ZXHC:
#if UNITY_ANDROID
if (id.codeAppId != null && id.codeAppId != "")
{
ZXHCADManager.Init(id.codeAppId);
//掌心汇川拉取广告需要oaid
ZXHCUtils.SetDeviceOaid("1231wsd3242f");
}
#endif #endif
break; break;
default: default:
Debug.unityLogger.Log(ZXADConfig.ADManagerTAG, "不支持初始化" + id.adPlatform + "的广告"); Debug.unityLogger.Log(ZXADConfig.ADManagerTAG, "不支持初始化" + id.adPlatform + "的广告");
break; break;
} }
} }
callback(true);
IsInitAd = true; IsInitAd = true;
}), new Action<string, string>((code, errMsg) => }), new Action<string, string>((code, errMsg) =>
{ {
callback(false);
Debug.unityLogger.Log(ZXADConfig.ADManagerTAG, code + "AdInit 请求失败" + errMsg); Debug.unityLogger.Log(ZXADConfig.ADManagerTAG, code + "AdInit 请求失败" + errMsg);
})); }));
...@@ -205,6 +221,10 @@ public class AdManager ...@@ -205,6 +221,10 @@ public class AdManager
case ZXADConfig.PLANTFORM_AD_GDT: case ZXADConfig.PLANTFORM_AD_GDT:
//广点通开屏广告 //广点通开屏广告
GDTSplshAdUtils.Instance.LoadSplshAd(entity, listener, callback); GDTSplshAdUtils.Instance.LoadSplshAd(entity, listener, callback);
break;
case ZXADConfig.PLANTFORM_AD_ZXHC:
//掌心汇川开屏广告
ZXHCSplashUtil.Instance.LoadSplshAd(entity, listener, callback);
break; break;
default: default:
Debug.unityLogger.Log(ZXADConfig.ADManagerTAG, "不支持加载" + entity.adPlatform + "的Splash广告"); Debug.unityLogger.Log(ZXADConfig.ADManagerTAG, "不支持加载" + entity.adPlatform + "的Splash广告");
...@@ -217,7 +237,7 @@ public class AdManager ...@@ -217,7 +237,7 @@ public class AdManager
//==================================================================Banner START================================================ //==================================================================Banner START================================================
/// <summary> /// <summary>
/// 关闭大图广告 /// 关闭Banner广告
/// </summary> /// </summary>
public void CloseBannerAd() public void CloseBannerAd()
{ {
...@@ -442,12 +462,16 @@ public class AdManager ...@@ -442,12 +462,16 @@ public class AdManager
switch (entity.adPlatform) switch (entity.adPlatform)
{ {
case ZXADConfig.PLANTFORM_AD_TT: case ZXADConfig.PLANTFORM_AD_TT:
//穿山甲插屏广告加载 //穿山甲大图广告加载
CSJFeedUtil.Instance.LoadCacheFeedAd(entity, callback); CSJFeedUtil.Instance.LoadCacheFeedAd(entity, callback);
break; break;
case ZXADConfig.PLANTFORM_AD_GDT: case ZXADConfig.PLANTFORM_AD_GDT:
//广点通插屏广告加载 //广点通大图广告加载
GDTFeedAdUtil.Instance.LoadCacheFeedAd(entity, callback); GDTFeedAdUtil.Instance.LoadCacheFeedAd(entity, callback);
break;
case ZXADConfig.PLANTFORM_AD_ZXHC:
//掌心汇川大图广告加载
ZXHCFeedUtil.Instance.LoadCacheFeedAd(entity, callback);
break; break;
default: default:
Debug.unityLogger.Log(ZXADConfig.ADManagerTAG, "不支持加载" + entity.adPlatform + "的大图广告"); Debug.unityLogger.Log(ZXADConfig.ADManagerTAG, "不支持加载" + entity.adPlatform + "的大图广告");
...@@ -495,6 +519,10 @@ public class AdManager ...@@ -495,6 +519,10 @@ public class AdManager
case ZXADConfig.PLANTFORM_AD_GDT: case ZXADConfig.PLANTFORM_AD_GDT:
//广点通大图广告加载 //广点通大图广告加载
GDTFeedAdUtil.Instance.ShowCacheFeedAd(entity, callback); GDTFeedAdUtil.Instance.ShowCacheFeedAd(entity, callback);
break;
case ZXADConfig.PLANTFORM_AD_ZXHC:
//掌心汇川大图广告加载
ZXHCFeedUtil.Instance.ShowCacheFeedAd(entity, callback);
break; break;
default: default:
Debug.unityLogger.Log(ZXADConfig.ADManagerTAG, "不支持Show"+entity.adPlatform+"的大图广告"); Debug.unityLogger.Log(ZXADConfig.ADManagerTAG, "不支持Show"+entity.adPlatform+"的大图广告");
...@@ -510,6 +538,7 @@ public class AdManager ...@@ -510,6 +538,7 @@ public class AdManager
{ {
CSJFeedUtil.Instance.CloseFeedAd(); CSJFeedUtil.Instance.CloseFeedAd();
GDTFeedAdUtil.Instance.CloseFeedAd(); GDTFeedAdUtil.Instance.CloseFeedAd();
ZXHCFeedUtil.Instance.CloseFeedAd();
} }
......
...@@ -29,6 +29,7 @@ public class ZXADConfig ...@@ -29,6 +29,7 @@ public class ZXADConfig
public const string PLANTFORM_AD_SH = "shanhu";//珊瑚 public const string PLANTFORM_AD_SH = "shanhu";//珊瑚
public const string PLANTFORM_AD_RS = "ruishi";//瑞狮 public const string PLANTFORM_AD_RS = "ruishi";//瑞狮
public const string PLANTFORM_AD_NEWS = "news";//新闻站 public const string PLANTFORM_AD_NEWS = "news";//新闻站
public const string PLANTFORM_AD_ZXHC = "zxhc";//掌心汇川
......
...@@ -33,7 +33,7 @@ public class CSJBannerUtil ...@@ -33,7 +33,7 @@ public class CSJBannerUtil
this.adNative = SDK.CreateAdNative(); this.adNative = SDK.CreateAdNative();
} }
#if UNITY_ANDROID #if UNITY_ANDROID
SDK.RequestPermissionIfNecessary(); //SDK.RequestPermissionIfNecessary();
#endif #endif
return this.adNative; return this.adNative;
} }
...@@ -59,9 +59,10 @@ public class CSJBannerUtil ...@@ -59,9 +59,10 @@ public class CSJBannerUtil
#if UNITY_ANDROID #if UNITY_ANDROID
if (mBanneAd != null) if (mBanneAd != null)
{ {
mBanneAd.Dispose(); NativeAdManager.Instance().DestoryExpressAd(mBanneAd.handle);
mBanneAd = null; mBanneAd = null;
} }
#elif UNITY_IOS #elif UNITY_IOS
if (mBanneAd != null) if (mBanneAd != null)
{ {
...@@ -118,7 +119,7 @@ public class CSJBannerUtil ...@@ -118,7 +119,7 @@ public class CSJBannerUtil
mBanneAd = bannerAdCacheListAndroid.Dequeue(); mBanneAd = bannerAdCacheListAndroid.Dequeue();
//设置轮播间隔 30s--120s;不设置则不开启轮播 //设置轮播间隔 30s--120s;不设置则不开启轮播
mBanneAd.SetSlideIntervalTime(30 * 1000); //mBanneAd.SetSlideIntervalTime(30 * 1000);
ExpressAdInteractionListener expressAdInteractionListener = new ExpressAdInteractionListener(this,entity,callback,1); ExpressAdInteractionListener expressAdInteractionListener = new ExpressAdInteractionListener(this,entity,callback,1);
ExpressAdDislikeCallback dislikeCallback = new ExpressAdDislikeCallback(this, 1); ExpressAdDislikeCallback dislikeCallback = new ExpressAdDislikeCallback(this, 1);
NativeAdManager.Instance().ShowExpressBannerAd(GetActivity(), mBanneAd.handle, expressAdInteractionListener, dislikeCallback); NativeAdManager.Instance().ShowExpressBannerAd(GetActivity(), mBanneAd.handle, expressAdInteractionListener, dislikeCallback);
......
...@@ -33,7 +33,7 @@ public class CSJFeedUtil : MonoBehaviour ...@@ -33,7 +33,7 @@ public class CSJFeedUtil : MonoBehaviour
this.adNative = SDK.CreateAdNative(); this.adNative = SDK.CreateAdNative();
} }
#if UNITY_ANDROID #if UNITY_ANDROID
SDK.RequestPermissionIfNecessary(); //SDK.RequestPermissionIfNecessary();
#endif #endif
return this.adNative; return this.adNative;
} }
...@@ -43,8 +43,14 @@ public class CSJFeedUtil : MonoBehaviour ...@@ -43,8 +43,14 @@ public class CSJFeedUtil : MonoBehaviour
{ {
if (feedAd != null) if (feedAd != null)
{ {
#if UNITY_ANDROID
NativeAdManager.Instance().DestoryExpressAd(feedAd.handle);
feedAd = null;
#elif UNITY_IOS
feedAd.Dispose(); feedAd.Dispose();
feedAd = null; feedAd = null;
#endif
} }
} }
...@@ -66,7 +72,7 @@ public class CSJFeedUtil : MonoBehaviour ...@@ -66,7 +72,7 @@ public class CSJFeedUtil : MonoBehaviour
#else #else
.SetCodeId(entity.codeId) .SetCodeId(entity.codeId)
////期望模板广告view的size,单位dp,//高度设置为0,则高度会自适应 ////期望模板广告view的size,单位dp,//高度设置为0,则高度会自适应
.SetExpressViewAcceptedSize(350, 0) .SetExpressViewAcceptedSize(Screen.width, 0)
#endif #endif
.SetSupportDeepLink(true) .SetSupportDeepLink(true)
.SetImageAcceptedSize(1080, 1920) .SetImageAcceptedSize(1080, 1920)
......
...@@ -33,7 +33,7 @@ public class CSJFullScreenUtil : MonoBehaviour ...@@ -33,7 +33,7 @@ public class CSJFullScreenUtil : MonoBehaviour
this.adNative = SDK.CreateAdNative(); this.adNative = SDK.CreateAdNative();
} }
#if UNITY_ANDROID #if UNITY_ANDROID
SDK.RequestPermissionIfNecessary(); //SDK.RequestPermissionIfNecessary();
#endif #endif
return this.adNative; return this.adNative;
} }
......
...@@ -33,7 +33,7 @@ public class CSJInterstitialUtil ...@@ -33,7 +33,7 @@ public class CSJInterstitialUtil
this.adNative = SDK.CreateAdNative(); this.adNative = SDK.CreateAdNative();
} }
#if UNITY_ANDROID #if UNITY_ANDROID
SDK.RequestPermissionIfNecessary(); //SDK.RequestPermissionIfNecessary();
#endif #endif
return this.adNative; return this.adNative;
} }
......
...@@ -32,7 +32,7 @@ public class CSJRewardUtil ...@@ -32,7 +32,7 @@ public class CSJRewardUtil
this.adNative = SDK.CreateAdNative(); this.adNative = SDK.CreateAdNative();
} }
#if UNITY_ANDROID #if UNITY_ANDROID
SDK.RequestPermissionIfNecessary(); //SDK.RequestPermissionIfNecessary();
#endif #endif
return this.adNative; return this.adNative;
} }
......
...@@ -34,7 +34,7 @@ public class CSJSplshADUtils ...@@ -34,7 +34,7 @@ public class CSJSplshADUtils
this.adNative = SDK.CreateAdNative(); this.adNative = SDK.CreateAdNative();
} }
#if UNITY_ANDROID #if UNITY_ANDROID
SDK.RequestPermissionIfNecessary(); //SDK.RequestPermissionIfNecessary();
#endif #endif
return this.adNative; return this.adNative;
} }
......
...@@ -50,6 +50,15 @@ public sealed class Example : MonoBehaviour ...@@ -50,6 +50,15 @@ public sealed class Example : MonoBehaviour
private ExpressAd mExpressBannerAd; private ExpressAd mExpressBannerAd;
private ExpressAd mExpressInterstitialAd; private ExpressAd mExpressInterstitialAd;
private void OnApplicationFocus(bool focus)
{
Debug.unityLogger.Log("CSJOnApplicationFocus" + focus);
}
private void OnApplicationPause(bool pause)
{
Debug.unityLogger.Log("CSJOnApplicationPause" + pause);
}
// 激励和全屏,开屏的横竖屏配置 // 激励和全屏,开屏的横竖屏配置
public int getScreenOrientationConfig () public int getScreenOrientationConfig ()
......
...@@ -9,6 +9,7 @@ PluginImporter: ...@@ -9,6 +9,7 @@ PluginImporter:
isPreloaded: 0 isPreloaded: 0
isOverridable: 0 isOverridable: 0
isExplicitlyReferenced: 0 isExplicitlyReferenced: 0
validateReferences: 1
platformData: platformData:
- first: - first:
Android: Android Android: Android
......
...@@ -9,6 +9,7 @@ PluginImporter: ...@@ -9,6 +9,7 @@ PluginImporter:
isPreloaded: 0 isPreloaded: 0
isOverridable: 0 isOverridable: 0
isExplicitlyReferenced: 0 isExplicitlyReferenced: 0
validateReferences: 1
platformData: platformData:
- first: - first:
Android: Android Android: Android
......
...@@ -80,7 +80,10 @@ public class AdDemo : MonoBehaviour ...@@ -80,7 +80,10 @@ public class AdDemo : MonoBehaviour
public void OnClickInitAd() public void OnClickInitAd()
{ {
//AdManager.Instance.LoadSplshAd(new SplshAdListener(this)); //AdManager.Instance.LoadSplshAd(new SplshAdListener(this));
AdManager.Instance.InitAd(); AdManager.Instance.InitAd(new System.Action<bool>((cb)=> {
}));
} }
...@@ -128,7 +131,7 @@ public class AdDemo : MonoBehaviour ...@@ -128,7 +131,7 @@ public class AdDemo : MonoBehaviour
public void OnClickShowBannerAd() public void OnClickShowBannerAd()
{ {
//CSJRewardUtil.Instance.LoadExpressRewardAd(); //CSJRewardUtil.Instance.LoadExpressRewardAd();
AdManager.Instance.ShowCacheBannerAd(Banner,"test"); AdManager.Instance.ShowCacheBannerAd(Banner, "test");
} }
public void OnClickCloseBanner() public void OnClickCloseBanner()
{ {
...@@ -136,12 +139,32 @@ public class AdDemo : MonoBehaviour ...@@ -136,12 +139,32 @@ public class AdDemo : MonoBehaviour
} }
public void OnClickLoadFeed() public void OnClickLoadFeed()
{ {
//StartCoroutine(GetAd());
AdManager.Instance.LoadCacheFeedAd(Feed); AdManager.Instance.LoadCacheFeedAd(Feed);
Debug.unityLogger.Log("GetAd1");
} }
private void OnApplicationFocus(bool focus)
{
Debug.unityLogger.Log("OnApplicationFocus" + focus);
}
private void OnApplicationPause(bool pause)
{
Debug.unityLogger.Log("OnApplicationPause" + pause);
}
//private IEnumerator GetAd()
//{
// yield return AdManager.Instance.LoadCacheFeedAd(Feed);
// Debug.unityLogger.Log("GetAd2");
//}
public void OnClickShowFeed() public void OnClickShowFeed()
{ {
AdManager.Instance.ShowCacheFeedAd(Feed, "test"); AdManager.Instance.ShowCacheFeedAd(Feed, "test");
//OnClickLoadFeed();
} }
public void OnClickCloseFeed() public void OnClickCloseFeed()
{ {
...@@ -165,7 +188,7 @@ public class AdDemo : MonoBehaviour ...@@ -165,7 +188,7 @@ public class AdDemo : MonoBehaviour
public void OnClickPlayFullScreeVideoAd() public void OnClickPlayFullScreeVideoAd()
{ {
AdManager.Instance.PlayCacheFSVideoAd("fullvideo","test", new FullScreenAdListener(this)); AdManager.Instance.PlayCacheFSVideoAd("fullvideo", "test", new FullScreenAdListener(this));
//AdManager.Instance.PlayCacheFSVideoAd(new FullScreenAdListener(this)); //AdManager.Instance.PlayCacheFSVideoAd(new FullScreenAdListener(this));
} }
......
...@@ -3025,6 +3025,11 @@ PrefabInstance: ...@@ -3025,6 +3025,11 @@ PrefabInstance:
propertyPath: m_Name propertyPath: m_Name
value: HTTP value: HTTP
objectReference: {fileID: 0} objectReference: {fileID: 0}
- target: {fileID: 2853166085728200634, guid: 1053be02c113a7a45adf322c929b0cb6,
type: 3}
propertyPath: IS_TEST
value: 1
objectReference: {fileID: 0}
- target: {fileID: 2853166085728200635, guid: 1053be02c113a7a45adf322c929b0cb6, - target: {fileID: 2853166085728200635, guid: 1053be02c113a7a45adf322c929b0cb6,
type: 3} type: 3}
propertyPath: m_RootOrder propertyPath: m_RootOrder
......
fileFormatVersion: 2
guid: 88b26881a74130a45b9947c4b55755c1
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 8bbd35f52d6a7954e9fb66f3d3f9b44a
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace ZXHC
{
public class Example : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
ZXHCADManager.Init("1000127");
ZXHCUtils.SetDeviceOaid("1231wsd3242f");
}
// Update is called once per frame
void Update()
{
}
public void OnClickSplash()
{
AdEntity entity = new AdEntity();
entity.codeId = "1100028";
ZXHCSplashUtil.Instance.LoadSplshAd(entity, new SplshAdListener(), new Action<bool>((cb) => {
Debug.unityLogger.Log("开屏jiazai"+ cb);
}));
}
public void OnClickFeed()
{
AdEntity entity = new AdEntity();
entity.codeId = "1100023";
ZXHCFeedUtil.Instance.LoadCacheFeedAd(entity, new Action<bool>((cb) =>
{
Debug.unityLogger.Log("LoadCacheFeedAd" + cb);
if (cb)
{
ZXHCFeedUtil.Instance.ShowCacheFeedAd(entity, new Action<bool>((cb2) =>
{
Debug.unityLogger.Log("ShowCacheFeedAd" + cb);
}));
}
}));
}
private sealed class SplshAdListener : ZXADSplashListener
{
public void onAdShow()
{
Debug.unityLogger.Log("开屏展示");
}
public void onAdSkip()
{
Debug.unityLogger.Log("开屏跳过");
}
public void onError(string errorMsg)
{
Debug.unityLogger.Log("开屏错误"+ errorMsg);
}
}
}
}
fileFormatVersion: 2
guid: 4945238a353523d47b31f6151e693571
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
This diff is collapsed.
fileFormatVersion: 2
guid: cb50b98bfef171a4ea884c941dd43fa3
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using ZXHC;
public class ZXHCFeedUtil
{
private ZXHCFeedUtil() { }
private static readonly ZXHCFeedUtil singleInstance = new ZXHCFeedUtil();
public static ZXHCFeedUtil Instance
{
get
{
return singleInstance;
}
}
//FeedAd
private ZXHCFeedAd feedAd;
/// <summary>
/// 大图广告缓存队列
/// </summary>
private static Queue<ZXHCFeedAd> feedAdCacheList = new Queue<ZXHCFeedAd>();
/// <summary>
/// 缓存加载FeedAd
/// </summary>
/// <param name="entity"></param>
/// <param name="callback"></param>
public void LoadCacheFeedAd(AdEntity entity, Action<bool> callback)
{
ZXHCFeedAd ad = new ZXHCFeedAd(entity.codeId, Screen.width, (Screen.width / 3) * 2);
ad.SetListener(new FeedAdListener(entity, ad, callback));
ad.LoadAd();
}
/// <summary>
/// 关闭大图广告
/// </summary>
public void CloseFeedAd()
{
if (feedAd != null)
{
feedAd.CLoseAD();
}
}
/// <summary>
/// 展示缓存的FeedAd
/// </summary>
/// <param name="entity"></param>
public void ShowCacheFeedAd(AdEntity entity, Action<bool> callback)
{
CloseFeedAd();
if (feedAdCacheList.Count > 0)
{
feedAd = feedAdCacheList.Dequeue();
#if UNITY_ANDROID
// Android 要求开屏 container 必须是 c# 的 AndroidJavaObject 类型,必须是 Java(Android)上的 ViewGroup 类型
AndroidJavaObject container = ZXHCUtils.NewAdContainer();
ZXHCUtils.ShowView(container, true);
feedAd.Show(container);
callback(true);
#elif UNITY_IOS
callback(false);
#endif
}
else
{
callback(false);
Debug.Log("ZXHC Feed广告没有缓存数据了");
}
}
private sealed class FeedAdListener : IZXHCFeedAdListener
{
private AdEntity entity;
private ZXHCFeedAd feedAd;
private Action<bool> callback;
public FeedAdListener(AdEntity entity, ZXHCFeedAd feedAd, Action<bool> callback)
{
this.entity = entity;
this.feedAd = feedAd;
this.callback = callback;
}
public void OnAdClicked()
{
//EventUtils.onEventAdClick(entity);
}
public void OnAdClosed()
{
//EventUtils.onEventAdComplete(entity);
}
public void OnAdLoaded()
{
//EventUtils.onEventPullSuccess(entity);
feedAdCacheList.Enqueue(feedAd);
callback(true);
}
public void OnAdShow()
{
//EventUtils.onEventShowSuccess(entity);
}
public void OnError(string code, string error)
{
//EventUtils.onEventPullFail(entity, code, error);
callback(false);
}
}
}
fileFormatVersion: 2
guid: 9aebc90bcdd21be458bd8295feb2c270
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using ZXHC;
public class ZXHCSplashUtil
{
private ZXHCSplashUtil() { }
private static readonly ZXHCSplashUtil singleInstance = new ZXHCSplashUtil();
public static ZXHCSplashUtil Instance
{
get
{
return singleInstance;
}
}
private ZXHCSplashAd hcSplshad;
#if UNITY_ANDROID
private static AndroidJavaObject container;
#elif UNITY_IOS
#endif
#if UNITY_IOS
#endif
/// <summary>
/// ZXHC 开屏广告
/// </summary>
/// <param name="listener"></param>
public void LoadSplshAd(AdEntity entity, ZXADSplashListener listener, Action<bool> callback)
{
//Constants.splashPosId
hcSplshad = new ZXHCSplashAd(entity.codeId);
hcSplshad.SetListener(new SplshAdListener(entity, this, listener, callback));
hcSplshad.SetFetchDelay(3);
// SetListener, SetFetchDelay要在 LoadAd 之前调用
hcSplshad.LoadAd();
}
/// <summary>
/// ZXHC开屏回调
/// </summary>
private sealed class SplshAdListener : IZXHCSplashAdListener
{
private AdEntity entity;
private ZXADSplashListener listener;
private ZXHCSplashUtil hcAdUtils;
private Action<bool> callback;
public SplshAdListener(AdEntity entity, ZXHCSplashUtil hcAdUtils, ZXADSplashListener listener, Action<bool> callback)
{
this.entity = entity;
this.listener = listener;
this.hcAdUtils = hcAdUtils;
this.callback = callback;
}
public void OnAdClicked()
{
//EventUtils.onEventAdClick(entity);
}
public void OnAdClosed()
{
//EventUtils.onEventAdComplete(entity);
this.listener.onAdSkip();
}
public void OnAdLoaded()
{
callback(true);
//EventUtils.onEventPullSuccess(entity);
#if UNITY_ANDROID
// Android 要求开屏 container 必须是 c# 的 AndroidJavaObject 类型,必须是 Java(Android)上的 ViewGroup 类型
container = ZXHCUtils.NewAdContainer();
ZXHCUtils.ShowView(container, false);
#elif UNITY_IOS
#endif
this.hcAdUtils.hcSplshad.Show(container);
}
public void OnAdShow()
{
//EventUtils.onEventShowSuccess(entity);
this.listener.onAdShow();
}
public void OnError(string code, string error)
{
//EventUtils.onEventPullFail(entity, code, error);
this.listener.onError("ZXHC Splsh Error Code" + code + " Msg " + error);
callback(false);
}
}
}
fileFormatVersion: 2
guid: 32c6743a9ccb56f4ab53d4b34d227cb4
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: a388757555eaef7439df233015d9905a
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: c7472a95da0a2494985db19787072df4
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace ZXHC
{
public class ZXHCFeedAd : MonoBehaviour
{
private AndroidJavaObject splashAd;
internal AndroidJavaObject container;
private string posId;
private int width;
private int height;
private AndroidJavaObject skipView;
private ZXHCFeedAdListenerProxy listenerProxy;
public ZXHCFeedAd(string posId ,int width, int height)
{
ZXHCADManager.CheckInit();
this.posId = posId;
this.width = width;
this.height = height;
this.listenerProxy = new ZXHCFeedAdListenerProxy(this);
}
private void init()
{
if (splashAd == null)
{
splashAd = new AndroidJavaObject("com.ym.zxhcsdk.view.ZXHCFeedAD", ZXHCUtils.GetActivity(), posId, width, height, listenerProxy);
}
}
public void SetListener(IZXHCFeedAdListener listener)
{
listenerProxy.listener = listener;
}
public void LoadAd()
{
if (!ZXHCADManager.CheckInit())
{
return;
}
// 由于 Android 的 fetchDelay 和 skipView 不允许动态设置,故只能延迟初始化
init();
this.splashAd.Call("loadAD");
}
public void Show(object container)
{
AndroidJavaObject splashContainer = (AndroidJavaObject)container;
if (CheckNotReady())
{
return;
}
this.splashAd.Call("showAd", splashContainer);
this.container = splashContainer;
}
public void CLoseAD()
{
if (CheckNotReady())
{
return;
}
this.splashAd.Call("destroyFeedAd", container);
}
/* 检查是否未准备好 */
private bool CheckNotReady()
{
if (!ZXHCADManager.CheckInit())
{
return true;
}
if (splashAd == null)
{
Debug.Log("请先加载广告");
return true;
}
return false;
}
}
}
fileFormatVersion: 2
guid: abd96e011f14f444ea01d94665ca9460
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace ZXHC
{
public class ZXHCFeedAdListenerProxy : AndroidJavaProxy
{
private ZXHCFeedAd ad;
internal IZXHCFeedAdListener listener = null;
public ZXHCFeedAdListenerProxy(ZXHCFeedAd ad) : base("com.ym.zxhcsdk.listener.FeedAdListener")
{
this.ad = ad;
}
void OnAdLoaded()
{
if (listener == null)
{
return;
}
listener.OnAdLoaded();
}
void OnError(string error)
{
if (listener == null)
{
return;
}
listener.OnError("204", error);
}
void OnAdClicked()
{
if (listener == null)
{
return;
}
listener.OnAdClicked();
}
void OnAdShow()
{
if (listener == null)
{
return;
}
listener.OnAdShow();
}
void OnAdClosed()
{
if (listener == null)
{
return;
}
listener.OnAdClosed();
}
}
}
fileFormatVersion: 2
guid: f7bcc1f7d5acfc240ae333aefa62ce58
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 1922dd319ebc3034b81367b003b5a124
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 8dd6145bf96a6544c98030870bb4bc7a
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 404db19af6664974b8ff6c1960eaf29d
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Android: Android
second:
enabled: 1
settings: {}
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: f6617ab52960bbd44b9ff372cea3b1eb
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace ZXHC
{
public class ZXHCSplashAd
{
private AndroidJavaObject splashAd;
internal AndroidJavaObject container;
private string posId;
private int fetchDelay;
private AndroidJavaObject skipView;
private ZXHCSplashAdListenerProxy listenerProxy;
internal long expireTime;
public ZXHCSplashAd(string posId)
{
ZXHCADManager.CheckInit();
this.posId = posId;
this.listenerProxy = new ZXHCSplashAdListenerProxy(this);
}
private void init()
{
if (splashAd == null)
{
splashAd = new AndroidJavaObject("com.ym.zxhcsdk.view.ZXHCSplashAD", ZXHCUtils.GetActivity(),posId, listenerProxy, fetchDelay);
}
}
public void SetListener(IZXHCSplashAdListener listener)
{
listenerProxy.listener = listener;
}
public void LoadAd()
{
if (!ZXHCADManager.CheckInit())
{
return;
}
// 由于 Android 的 fetchDelay 和 skipView 不允许动态设置,故只能延迟初始化
init();
this.splashAd.Call("fetchAdOnly");
}
/**
* @param duration 单位秒
*/
public void SetFetchDelay(int duration)
{
this.fetchDelay = duration;
}
public void Show(object container)
{
AndroidJavaObject splashContainer = (AndroidJavaObject)container;
if (CheckNotReady())
{
return;
}
this.splashAd.Call("showAd", splashContainer);
this.container = splashContainer;
}
/* 检查是否未准备好 */
private bool CheckNotReady()
{
if (!ZXHCADManager.CheckInit())
{
return true;
}
if (splashAd == null)
{
Debug.Log("请先加载广告");
return true;
}
return false;
}
}
}
fileFormatVersion: 2
guid: abd4de4a9fb437243b5914900cc9d75b
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace ZXHC
{
public class ZXHCSplashAdListenerProxy : AndroidJavaProxy
{
private ZXHCSplashAd ad;
internal IZXHCSplashAdListener listener = null;
public ZXHCSplashAdListenerProxy(ZXHCSplashAd ad) : base("com.ym.zxhcsdk.listener.SplashAdListener")
{
this.ad = ad;
}
void OnAdLoaded()
{
if (listener == null)
{
return;
}
listener.OnAdLoaded();
}
void OnError(string error)
{
if (listener == null)
{
return;
}
listener.OnError("204",error);
}
void OnAdClicked()
{
if (listener == null)
{
return;
}
listener.OnAdClicked();
}
void OnAdShow()
{
if (listener == null)
{
return;
}
listener.OnAdShow();
}
void OnAdClosed()
{
if (listener == null)
{
return;
}
listener.OnAdClosed();
}
}
}
fileFormatVersion: 2
guid: aeea6671fe19ff345bf67071f6aa7b2e
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 65a027965c3bc93468ecc894567e248a
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
using System.Collections;
using System.Collections.Generic;
using Tencent.GDT;
using UnityEngine;
namespace ZXHC
{
public class ZXHCADManager
{
private static string appId;
private static bool hasInit = false;
public static bool Init(string appId)
{
#if UNITY_ANDROID
AndroidJavaObject hcAdManager = new AndroidJavaClass("com.ym.zxhcsdk.manager.ZXHCADManager").CallStatic<AndroidJavaObject>("getInstance");
hasInit = hcAdManager.Call<bool>("InitAd",ZXHCUtils.GetActivity(),appId);
return hasInit;
#elif UNITY_IOS
return hasInit;
#endif
}
internal static bool CheckInit()
{
if (!hasInit)
{
Debug.unityLogger.Log("ZXHC_UNITY_LOG", "请先初始化ZXHC SDK !");
}
return hasInit;
}
}
}
fileFormatVersion: 2
guid: 0c7b2f179e7637b4b96e70eaa9ede769
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
namespace ZXHC
{
public class ZXHCUtils
{
// activity 对象,unity 只有一个 activity
private static AndroidJavaObject activity;
public static AndroidJavaObject GetActivity()
{
#if UNITY_ANDROID
if (activity == null)
{
var unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
activity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
}
#endif
return activity;
}
public static void ShowView(AndroidJavaObject view, bool isWrapContent)
{
AndroidJavaObject adViewManager = new AndroidJavaClass("com.ym.zxhcsdk.manager.ZXHCAdViewManager").CallStatic<AndroidJavaObject>("getInstance");
adViewManager.Call("showAdView", GetActivity(), view, isWrapContent);
}
public static AndroidJavaObject NewAdContainer()
{
AndroidJavaObject adViewManager = new AndroidJavaClass("com.ym.zxhcsdk.manager.ZXHCAdViewManager").CallStatic<AndroidJavaObject>("getInstance");
return adViewManager.Call<AndroidJavaObject>("newFrameLayout", GetActivity());
}
public static void SetDeviceOaid(string oaid)
{
AndroidJavaObject phoneUtil = new AndroidJavaClass("com.ym.zxhcsdk.PhoneUtils").CallStatic<AndroidJavaObject>("getInstance");
phoneUtil.Call("setOaid", oaid);
}
public static string GetDeviceOaid()
{
AndroidJavaObject phoneUtil = new AndroidJavaClass("com.ym.zxhcsdk.PhoneUtils").CallStatic<AndroidJavaObject>("getInstance");
return phoneUtil.Call<string>("getoaid");
}
}
}
fileFormatVersion: 2
guid: ed556b1a4aba8e54f9645b0673dfbc3c
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: c49b41156b8258e44b507cc2a7851127
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
namespace ZXHC
{
public interface IZXHCFeedAdListener
{
/// <summary>
/// 广告数据拉取成功
/// </summary>
void OnAdLoaded();
/// <summary>
/// 广告加载失败
/// </summary>
void OnError(string code, string error);
/// <summary>
/// 当广告点击时发起的回调
/// </summary>
void OnAdClicked();
/// <summary>
/// 当广告被展示
/// </summary>
void OnAdShow();
/// <summary>
/// 当广告关闭时调用
/// </summary>
void OnAdClosed();
}
}
fileFormatVersion: 2
guid: f3bf4c46275706045a9c20b638041b4f
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
namespace ZXHC
{
public interface IZXHCSplashAdListener
{
/// <summary>
/// 广告数据拉取成功
/// </summary>
void OnAdLoaded();
/// <summary>
/// 广告加载失败
/// </summary>
void OnError(string code,string error);
/// <summary>
/// 当广告点击时发起的回调
/// </summary>
void OnAdClicked();
/// <summary>
/// 当广告被展示
/// </summary>
void OnAdShow();
/// <summary>
/// 当广告关闭时调用
/// </summary>
void OnAdClosed();
}
}
fileFormatVersion: 2
guid: c3dc536e95b944c4189f8e8e69fb0bc6
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: a534c70bbf8b71248bc34f7d04ee2015
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public interface IOaidListener
{
void getOaid(string oaid);
}
fileFormatVersion: 2
guid: fee1cce6e89682442805dedaea6048d5
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
package com.ym.zxhcsdkaar;
public interface IOaidListener {
void getOaid(String oaid);
}
fileFormatVersion: 2
guid: 38ed43c74b578884cb1293d3ac31da13
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Android: Android
second:
enabled: 1
settings: {}
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
userData:
assetBundleName:
assetBundleVariant:
package com.ym.zxhcsdkaar;
import android.content.Context;
import com.bun.miitmdid.core.ErrorCode;
import com.bun.miitmdid.core.MdidSdkHelper;
import com.bun.miitmdid.interfaces.IIdentifierListener;
import com.bun.miitmdid.interfaces.IdSupplier;
/**
* Created by zheng on 2019/8/22.
*/
public class MiitHelper implements IIdentifierListener {
private AppIdsUpdater _listener;
public MiitHelper(AppIdsUpdater callback) {
_listener = callback;
}
public boolean getDeviceIds(Context cxt) {
long timeb = System.currentTimeMillis();
int nres = CallFromReflect(cxt);
// int nres=DirectCall(cxt);
long timee = System.currentTimeMillis();
long offset = timee - timeb;
if (nres == ErrorCode.INIT_ERROR_DEVICE_NOSUPPORT) {//1008612 不支持的设备
return false;
} else if (nres == ErrorCode.INIT_ERROR_LOAD_CONFIGFILE) {//1008613 加载配置文件出错
return false;
} else if (nres == ErrorCode.INIT_ERROR_MANUFACTURER_NOSUPPORT) {//1008611 不支持的设备厂商
return false;
} else if (nres == ErrorCode.INIT_ERROR_RESULT_DELAY) {//1008614 获取接口是异步的,结果会在回调中返回,回调执行的回调可能在工作线程
return false;
} else if (nres == ErrorCode.INIT_HELPER_CALL_ERROR) {//1008615 反射调用出错
return false;
}else {
return true;
}
}
/*
* 通过反射调用,解决android 9以后的类加载升级,导至找不到so中的方法
*
* */
private int CallFromReflect(Context cxt) {
return MdidSdkHelper.InitSdk(cxt, true, this);
}
/*
* 直接java调用,如果这样调用,在android 9以前没有题,在android 9以后会抛找不到so方法的异常
* 解决办法是和JLibrary.InitEntry(cxt),分开调用,比如在A类中调用JLibrary.InitEntry(cxt),在B类中调用MdidSdk的方法
* A和B不能存在直接和间接依赖关系,否则也会报错
*
* */
/* private int DirectCall(Context cxt) {
MdidSdk sdk = new MdidSdk();
return sdk.InitSdk(cxt, this);
}*/
@Override
public void OnSupport(boolean b, IdSupplier idSupplier) {
if (idSupplier == null) {
return;
}
String oaid = idSupplier.getOAID();
if (_listener != null) {
_listener.OnIdsAvalid(oaid);
}
}
public interface AppIdsUpdater {
void OnIdsAvalid(String ids);
}
}
fileFormatVersion: 2
guid: 53f20e5066f683e40920e158cd939a81
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Android: Android
second:
enabled: 1
settings: {}
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
userData:
assetBundleName:
assetBundleVariant:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class OaidListenerProxy : AndroidJavaProxy
{
internal IOaidListener listener = null;
public OaidListenerProxy() : base("com.ym.zxhcsdkaar.IOaidListener")
{
}
void getOaid(string oaid)
{
if (listener == null)
{
return;
}
listener.getOaid(oaid);
}
}
fileFormatVersion: 2
guid: 80f429c7dfbdc0341a8d065cf077335d
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using ZXHC;
public class OaidUtil
{
public void GetOaid()
{
AndroidJavaObject util = new AndroidJavaClass("com.ym.zxhcsdkaar.OaidUtils");
util.Call("GetOaid", ZXHCUtils.GetActivity(), new OaidListener());
}
private class OaidListener : IOaidListener
{
public void getOaid(string oaid)
{
}
}
}
fileFormatVersion: 2
guid: 102e9d3ec64affd43834416e32188cab
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
package com.ym.zxhcsdkaar;
import android.app.Activity;
import android.text.TextUtils;
public class OaidUtils {
private IOaidListener listener;
public void GetOaid(Activity activity, IOaidListener listener){
this.listener = listener;
new MiitHelper(appIdsUpdater).getDeviceIds(activity);
}
MiitHelper.AppIdsUpdater appIdsUpdater = ids -> {
if (!TextUtils.isEmpty(ids)) {
if (listener!=null){
listener.getOaid(ids);
}
}
};
}
fileFormatVersion: 2
guid: 13c80a00334ceb4408824e1b19183f84
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Android: Android
second:
enabled: 1
settings: {}
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 0f04dcd4b926bce449b856bbecf8d20b
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 77bd1a3abc29cee49a59db7140c1af16
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: 5c52c2d7272049446ac3794e540cf008
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Android: Android
second:
enabled: 1
settings: {}
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
userData:
assetBundleName:
assetBundleVariant:
fileFormatVersion: 2
guid: e3180a7cc4f188f428267651fe4618ae
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
{
"supplier":{
"vivo":{
"appid":"105390643"
},
"xiaomi":{
"appid":"2882303761518919626"
},
"huawei":{
"appid":"103530095"
},
"oppo":{
"appid":"30438717"
},
"meizu":{
"appid":"330148"
}
}
}
fileFormatVersion: 2
guid: 7058e8f39b9472943b67e34150ea0687
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
...@@ -89,7 +89,10 @@ public class Splash : MonoBehaviour ...@@ -89,7 +89,10 @@ public class Splash : MonoBehaviour
#endif #endif
Debug.unityLogger.Log("初始化广告"); Debug.unityLogger.Log("初始化广告");
AdManager.Instance.InitAd(); AdManager.Instance.InitAd(new Action<bool>((cb)=> {
}));
Debug.unityLogger.Log("加载开屏"); Debug.unityLogger.Log("加载开屏");
StartCoroutine(loadSplash()); StartCoroutine(loadSplash());
} }
......
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.company.product"> package="com.company.product">
<!--必须要有的权限--> <!--必须要有的权限-->
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/> <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
<uses-permission android:name="android.permission.GET_TASKS"/> <uses-permission android:name="android.permission.GET_TASKS"/>
<!--最好能提供的权限--> <!--最好能提供的权限-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!-- 如果有视频相关的广告且使用textureView播放,请务必添加,否则黑屏 --> <!-- 如果有视频相关的广告且使用textureView播放,请务必添加,否则黑屏 -->
<uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.WAKE_LOCK" />
<application <application
android:name="com.bytedance.android.UnionApplication" android:name="com.bytedance.android.UnionApplication"
android:icon="@drawable/app_icon" android:icon="@drawable/app_icon"
android:label="@string/app_name" android:label="@string/app_name"
android:allowBackup="true" android:allowBackup="true"
android:supportsRtl="true"> android:supportsRtl="true">
<uses-library android:name="org.apache.http.legacy" android:required="false"/> <uses-library android:name="org.apache.http.legacy" android:required="false"/>
<activity android:name="com.unity3d.player.UnityPlayerActivity" <activity android:name="com.unity3d.player.UnityPlayerActivity"
android:label="@string/app_name" android:label="@string/app_name"
android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen"> android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter> </intent-filter>
</activity> </activity>
<provider <provider
android:name="com.bytedance.sdk.openadsdk.TTFileProvider" android:name="com.bytedance.sdk.openadsdk.TTFileProvider"
android:authorities="${applicationId}.TTFileProvider" android:authorities="${applicationId}.TTFileProvider"
android:exported="false" android:exported="false"
android:grantUriPermissions="true"> android:grantUriPermissions="true">
<meta-data <meta-data
android:name="android.support.FILE_PROVIDER_PATHS" android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" /> android:resource="@xml/file_paths" />
</provider> </provider>
<provider <provider
android:name="com.bytedance.sdk.openadsdk.multipro.TTMultiProvider" android:name="com.bytedance.sdk.openadsdk.multipro.TTMultiProvider"
android:authorities="${applicationId}.TTMultiProvider" android:authorities="${applicationId}.TTMultiProvider"
android:exported="false" /> android:exported="false" />
</application>
</application>
</manifest> </manifest>
...@@ -24,14 +24,14 @@ public final class UnionApplication extends Application { ...@@ -24,14 +24,14 @@ public final class UnionApplication extends Application {
AppliContext.init(this); AppliContext.init(this);
UMConfigure.setLogEnabled(true); UMConfigure.setLogEnabled(true);
UMConfigure.init(this, "602f890b668f9e17b8b31413", "xynt", UMConfigure.DEVICE_TYPE_PHONE,""); UMConfigure.init(this, "602f890b668f9e17b8b31413", "xynt", UMConfigure.DEVICE_TYPE_PHONE,"");
// TTAdConfig config = new TTAdConfig.Builder() //TTAdConfig config = new TTAdConfig.Builder()
// //.appId("5001121") // .appId("5001121")
// .appId("5145269") // .appId("5145269")
// .useTextureView(false) //使用TextureView控件播放视频,默认为SurfaceView,当有SurfaceView冲突的场景,可以使用TextureView // .useTextureView(false) //使用TextureView控件播放视频,默认为SurfaceView,当有SurfaceView冲突的场景,可以使用TextureView
// .appName("APP测试媒体") // .appName("APP测试媒体")
// .titleBarTheme(TTAdConstant.TITLE_BAR_THEME_DARK) // .titleBarTheme(TTAdConstant.TITLE_BAR_THEME_DARK)
// .allowShowNotify(true) //是否允许sdk展示通知栏提示 // .allowShowNotify(true) //是否允许sdk展示通知栏提示
// .allowShowPageWhenScreenLock(true) //是否在锁屏场景支持展示广告落地页 // .allowShowPageWhenScreenLock(true) //是否在锁屏场景支持展示广告落地页
// .debug(true) //测试阶段打开,可以通过日志排查问题,上线时去除该调用 // .debug(true) //测试阶段打开,可以通过日志排查问题,上线时去除该调用
// .directDownloadNetworkType(TTAdConstant.NETWORK_STATE_WIFI, TTAdConstant.NETWORK_STATE_3G) //允许直接下载的网络状态集合 // .directDownloadNetworkType(TTAdConstant.NETWORK_STATE_WIFI, TTAdConstant.NETWORK_STATE_3G) //允许直接下载的网络状态集合
// .supportMultiProcess(false) //是否支持多进程,true支持 // .supportMultiProcess(false) //是否支持多进程,true支持
...@@ -39,7 +39,7 @@ public final class UnionApplication extends Application { ...@@ -39,7 +39,7 @@ public final class UnionApplication extends Application {
// .build(); // .build();
// // 强烈建议在应用对应的Application#onCreate()方法中调用,避免出现content为null的异常 // // 强烈建议在应用对应的Application#onCreate()方法中调用,避免出现content为null的异常
// TTAdSdk.init(this, config); //TTAdSdk.init(this, config);
//如果明确某个进程不会使用到广告SDK,可以只针对特定进程初始化广告SDK的content //如果明确某个进程不会使用到广告SDK,可以只针对特定进程初始化广告SDK的content
//if (PROCESS_NAME_XXXX.equals(processName)) { //if (PROCESS_NAME_XXXX.equals(processName)) {
...@@ -48,44 +48,44 @@ public final class UnionApplication extends Application { ...@@ -48,44 +48,44 @@ public final class UnionApplication extends Application {
} }
// private static TTCustomController getController() { // private static TTCustomController getController() {
// MyTTCustomController customController = new MyTTCustomController(); // MyTTCustomController customController = new MyTTCustomController();
// return customController; // return customController;
// } // }
// private static class MyTTCustomController extends TTCustomController{ // private static class MyTTCustomController extends TTCustomController{
// @Override // @Override
// public boolean isCanUseLocation() { // public boolean isCanUseLocation() {
// return super.isCanUseLocation(); // return super.isCanUseLocation();
// }
//
// @Override
// public TTLocation getTTLocation() {
// return super.getTTLocation();
// }
//
// @Override
// public boolean alist() {
// return super.alist();
// }
//
// @Override
// public boolean isCanUsePhoneState() {
// return super.isCanUsePhoneState();
// } // }
//
// @Override // @Override
// public TTLocation getTTLocation() { // public String getDevImei() {
// return super.getTTLocation(); //// return super.getDevImei();
// } //}
//
// @Override // @Override
// public boolean alist() { //// public boolean isCanUseWifiState() {
// return super.alist(); // return super.isCanUseWifiState();
// } //}
//
// @Override // @Override
// public boolean isCanUsePhoneState() { // public boolean isCanUseWriteExternal() {
// return super.isCanUsePhoneState(); // return super.isCanUseWriteExternal();
// }
// @Override
// public String getDevImei() {
// return super.getDevImei();
// }
// @Override
// public boolean isCanUseWifiState() {
// return super.isCanUseWifiState();
// } // }
//}
// @Override
// public boolean isCanUseWriteExternal() {
// return super.isCanUseWriteExternal();
// }
// }
} }
...@@ -5,8 +5,11 @@ PluginImporter: ...@@ -5,8 +5,11 @@ PluginImporter:
serializedVersion: 2 serializedVersion: 2
iconMap: {} iconMap: {}
executionOrder: {} executionOrder: {}
defineConstraints: []
isPreloaded: 0 isPreloaded: 0
isOverridable: 0 isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData: platformData:
- first: - first:
Android: Android Android: Android
......
fileFormatVersion: 2
guid: 31acb50e5e51909468062ece537a389a
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEditor.Android;
using UnityEngine;
public class SupportAndroidXGradlePropertiesBuildProcessor : IPostGenerateGradleAndroidProject
{
public int callbackOrder
{
// 同种插件的优先级
get { return 999; }
}
public void OnPostGenerateGradleAndroidProject(string path)
{
Debug.Log("Bulid path : " + path);
string gradlePropertiesFile = path + "/gradle.properties";
if (File.Exists(gradlePropertiesFile))
{
File.Delete(gradlePropertiesFile);
}
StreamWriter writer = File.CreateText(gradlePropertiesFile);
writer.WriteLine("org.gradle.jvmargs=-Xmx4096M");
writer.WriteLine("android.useAndroidX=true");
writer.WriteLine("android.enableJetifier=true");
writer.Flush();
writer.Close();
}
}
fileFormatVersion: 2
guid: bbe54b3c994a4964785ac17301e39f4c
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
...@@ -20,4 +20,7 @@ EditorBuildSettings: ...@@ -20,4 +20,7 @@ EditorBuildSettings:
- enabled: 0 - enabled: 0
path: Assets/AdSDK/NetWork/Demo/HttpDemo.unity path: Assets/AdSDK/NetWork/Demo/HttpDemo.unity
guid: 1d254830c8b62484bb74d303cbb2cc3d guid: 1d254830c8b62484bb74d303cbb2cc3d
- enabled: 0
path: Assets/AdSDK/AD/ZXHC/ZXHCDemo/ZXHCDemo.unity
guid: cb50b98bfef171a4ea884c941dd43fa3
m_configObjects: {} m_configObjects: {}
...@@ -175,7 +175,7 @@ PlayerSettings: ...@@ -175,7 +175,7 @@ PlayerSettings:
androidSupportedAspectRatio: 1 androidSupportedAspectRatio: 1
androidMaxAspectRatio: 2.1 androidMaxAspectRatio: 2.1
applicationIdentifier: applicationIdentifier:
Android: com.ym.xynt Android: com.ym.yzqj
Lumin: com.DefaultCompany.com.unity.template.mobile2D Lumin: com.DefaultCompany.com.unity.template.mobile2D
Standalone: com.DefaultCompany.com.unity.template.mobile2D Standalone: com.DefaultCompany.com.unity.template.mobile2D
iPhone: com.DefaultCompany.com.unity.template.mobile2D iPhone: com.DefaultCompany.com.unity.template.mobile2D
...@@ -185,7 +185,7 @@ PlayerSettings: ...@@ -185,7 +185,7 @@ PlayerSettings:
iPhone: 0 iPhone: 0
tvOS: 0 tvOS: 0
AndroidBundleVersionCode: 1 AndroidBundleVersionCode: 1
AndroidMinSdkVersion: 19 AndroidMinSdkVersion: 21
AndroidTargetSdkVersion: 0 AndroidTargetSdkVersion: 0
AndroidPreferredInstallLocation: 1 AndroidPreferredInstallLocation: 1
aotOptions: aotOptions:
...@@ -282,36 +282,6 @@ PlayerSettings: ...@@ -282,36 +282,6 @@ PlayerSettings:
m_BuildTargetPlatformIcons: m_BuildTargetPlatformIcons:
- m_BuildTarget: Android - m_BuildTarget: Android
m_Icons: m_Icons:
- m_Textures: []
m_Width: 432
m_Height: 432
m_Kind: 2
m_SubKind:
- m_Textures: []
m_Width: 324
m_Height: 324
m_Kind: 2
m_SubKind:
- m_Textures: []
m_Width: 216
m_Height: 216
m_Kind: 2
m_SubKind:
- m_Textures: []
m_Width: 162
m_Height: 162
m_Kind: 2
m_SubKind:
- m_Textures: []
m_Width: 108
m_Height: 108
m_Kind: 2
m_SubKind:
- m_Textures: []
m_Width: 81
m_Height: 81
m_Kind: 2
m_SubKind:
- m_Textures: [] - m_Textures: []
m_Width: 192 m_Width: 192
m_Height: 192 m_Height: 192
...@@ -372,6 +342,36 @@ PlayerSettings: ...@@ -372,6 +342,36 @@ PlayerSettings:
m_Height: 36 m_Height: 36
m_Kind: 1 m_Kind: 1
m_SubKind: m_SubKind:
- m_Textures: []
m_Width: 432
m_Height: 432
m_Kind: 2
m_SubKind:
- m_Textures: []
m_Width: 324
m_Height: 324
m_Kind: 2
m_SubKind:
- m_Textures: []
m_Width: 216
m_Height: 216
m_Kind: 2
m_SubKind:
- m_Textures: []
m_Width: 162
m_Height: 162
m_Kind: 2
m_SubKind:
- m_Textures: []
m_Width: 108
m_Height: 108
m_Kind: 2
m_SubKind:
- m_Textures: []
m_Width: 81
m_Height: 81
m_Kind: 2
m_SubKind:
m_BuildTargetBatching: [] m_BuildTargetBatching: []
m_BuildTargetEncrypting: [] m_BuildTargetEncrypting: []
m_BuildTargetGraphicsJobs: m_BuildTargetGraphicsJobs:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment