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

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

parent d16bc4c4
......@@ -4,6 +4,8 @@ using UnityEngine;
using System;
using Tencent.GDT;
using System.Runtime.InteropServices;
using ByteDance.Union;
using ZXHC;
public class AdManager
{
......@@ -50,7 +52,7 @@ public class AdManager
private string AdLoadUrl = "v4/ads";
private bool IsFirstLoadRewardAd = false;
private bool IsFirstLoadFSAd = false;
public void InitAd()
public void InitAd(Action<bool> callback)
{
IsFirstLoadRewardAd = true;
IsFirstLoadFSAd = true;
......@@ -68,6 +70,8 @@ public class AdManager
#if UNITY_ANDROID
AndroidJavaClass jc = new AndroidJavaClass("com.unity.adcommon.unity.TTADManager");
jc.CallStatic("init", id.codeAppId);
//获取穿山甲权限
SDK.RequestPermissionIfNecessary();
#elif UNITY_IOS
InitCSJSDK(id.codeAppId);
#endif
......@@ -85,17 +89,29 @@ public class AdManager
AndroidJavaClass jc2 = new AndroidJavaClass("com.unity.adcommon.unity.TTADManager");
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
break;
default:
Debug.unityLogger.Log(ZXADConfig.ADManagerTAG, "不支持初始化" + id.adPlatform + "的广告");
break;
}
}
callback(true);
IsInitAd = true;
}), new Action<string, string>((code, errMsg) =>
{
callback(false);
Debug.unityLogger.Log(ZXADConfig.ADManagerTAG, code + "AdInit 请求失败" + errMsg);
}));
......@@ -205,6 +221,10 @@ public class AdManager
case ZXADConfig.PLANTFORM_AD_GDT:
//广点通开屏广告
GDTSplshAdUtils.Instance.LoadSplshAd(entity, listener, callback);
break;
case ZXADConfig.PLANTFORM_AD_ZXHC:
//掌心汇川开屏广告
ZXHCSplashUtil.Instance.LoadSplshAd(entity, listener, callback);
break;
default:
Debug.unityLogger.Log(ZXADConfig.ADManagerTAG, "不支持加载" + entity.adPlatform + "的Splash广告");
......@@ -217,7 +237,7 @@ public class AdManager
//==================================================================Banner START================================================
/// <summary>
/// 关闭大图广告
/// 关闭Banner广告
/// </summary>
public void CloseBannerAd()
{
......@@ -442,12 +462,16 @@ public class AdManager
switch (entity.adPlatform)
{
case ZXADConfig.PLANTFORM_AD_TT:
//穿山甲插屏广告加载
//穿山甲大图广告加载
CSJFeedUtil.Instance.LoadCacheFeedAd(entity, callback);
break;
case ZXADConfig.PLANTFORM_AD_GDT:
//广点通插屏广告加载
//广点通大图广告加载
GDTFeedAdUtil.Instance.LoadCacheFeedAd(entity, callback);
break;
case ZXADConfig.PLANTFORM_AD_ZXHC:
//掌心汇川大图广告加载
ZXHCFeedUtil.Instance.LoadCacheFeedAd(entity, callback);
break;
default:
Debug.unityLogger.Log(ZXADConfig.ADManagerTAG, "不支持加载" + entity.adPlatform + "的大图广告");
......@@ -495,6 +519,10 @@ public class AdManager
case ZXADConfig.PLANTFORM_AD_GDT:
//广点通大图广告加载
GDTFeedAdUtil.Instance.ShowCacheFeedAd(entity, callback);
break;
case ZXADConfig.PLANTFORM_AD_ZXHC:
//掌心汇川大图广告加载
ZXHCFeedUtil.Instance.ShowCacheFeedAd(entity, callback);
break;
default:
Debug.unityLogger.Log(ZXADConfig.ADManagerTAG, "不支持Show"+entity.adPlatform+"的大图广告");
......@@ -510,6 +538,7 @@ public class AdManager
{
CSJFeedUtil.Instance.CloseFeedAd();
GDTFeedAdUtil.Instance.CloseFeedAd();
ZXHCFeedUtil.Instance.CloseFeedAd();
}
......
......@@ -29,6 +29,7 @@ public class ZXADConfig
public const string PLANTFORM_AD_SH = "shanhu";//珊瑚
public const string PLANTFORM_AD_RS = "ruishi";//瑞狮
public const string PLANTFORM_AD_NEWS = "news";//新闻站
public const string PLANTFORM_AD_ZXHC = "zxhc";//掌心汇川
......
......@@ -33,7 +33,7 @@ public class CSJBannerUtil
this.adNative = SDK.CreateAdNative();
}
#if UNITY_ANDROID
SDK.RequestPermissionIfNecessary();
//SDK.RequestPermissionIfNecessary();
#endif
return this.adNative;
}
......@@ -59,9 +59,10 @@ public class CSJBannerUtil
#if UNITY_ANDROID
if (mBanneAd != null)
{
mBanneAd.Dispose();
NativeAdManager.Instance().DestoryExpressAd(mBanneAd.handle);
mBanneAd = null;
}
#elif UNITY_IOS
if (mBanneAd != null)
{
......@@ -118,7 +119,7 @@ public class CSJBannerUtil
mBanneAd = bannerAdCacheListAndroid.Dequeue();
//设置轮播间隔 30s--120s;不设置则不开启轮播
mBanneAd.SetSlideIntervalTime(30 * 1000);
//mBanneAd.SetSlideIntervalTime(30 * 1000);
ExpressAdInteractionListener expressAdInteractionListener = new ExpressAdInteractionListener(this,entity,callback,1);
ExpressAdDislikeCallback dislikeCallback = new ExpressAdDislikeCallback(this, 1);
NativeAdManager.Instance().ShowExpressBannerAd(GetActivity(), mBanneAd.handle, expressAdInteractionListener, dislikeCallback);
......
......@@ -33,7 +33,7 @@ public class CSJFeedUtil : MonoBehaviour
this.adNative = SDK.CreateAdNative();
}
#if UNITY_ANDROID
SDK.RequestPermissionIfNecessary();
//SDK.RequestPermissionIfNecessary();
#endif
return this.adNative;
}
......@@ -43,8 +43,14 @@ public class CSJFeedUtil : MonoBehaviour
{
if (feedAd != null)
{
#if UNITY_ANDROID
NativeAdManager.Instance().DestoryExpressAd(feedAd.handle);
feedAd = null;
#elif UNITY_IOS
feedAd.Dispose();
feedAd = null;
#endif
}
}
......@@ -66,7 +72,7 @@ public class CSJFeedUtil : MonoBehaviour
#else
.SetCodeId(entity.codeId)
////期望模板广告view的size,单位dp,//高度设置为0,则高度会自适应
.SetExpressViewAcceptedSize(350, 0)
.SetExpressViewAcceptedSize(Screen.width, 0)
#endif
.SetSupportDeepLink(true)
.SetImageAcceptedSize(1080, 1920)
......
......@@ -33,7 +33,7 @@ public class CSJFullScreenUtil : MonoBehaviour
this.adNative = SDK.CreateAdNative();
}
#if UNITY_ANDROID
SDK.RequestPermissionIfNecessary();
//SDK.RequestPermissionIfNecessary();
#endif
return this.adNative;
}
......
......@@ -33,7 +33,7 @@ public class CSJInterstitialUtil
this.adNative = SDK.CreateAdNative();
}
#if UNITY_ANDROID
SDK.RequestPermissionIfNecessary();
//SDK.RequestPermissionIfNecessary();
#endif
return this.adNative;
}
......
......@@ -32,7 +32,7 @@ public class CSJRewardUtil
this.adNative = SDK.CreateAdNative();
}
#if UNITY_ANDROID
SDK.RequestPermissionIfNecessary();
//SDK.RequestPermissionIfNecessary();
#endif
return this.adNative;
}
......
......@@ -34,7 +34,7 @@ public class CSJSplshADUtils
this.adNative = SDK.CreateAdNative();
}
#if UNITY_ANDROID
SDK.RequestPermissionIfNecessary();
//SDK.RequestPermissionIfNecessary();
#endif
return this.adNative;
}
......
......@@ -50,6 +50,15 @@ public sealed class Example : MonoBehaviour
private ExpressAd mExpressBannerAd;
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 ()
......
......@@ -9,6 +9,7 @@ PluginImporter:
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Android: Android
......
......@@ -9,6 +9,7 @@ PluginImporter:
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Android: Android
......
......@@ -80,7 +80,10 @@ public class AdDemo : MonoBehaviour
public void OnClickInitAd()
{
//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
public void OnClickShowBannerAd()
{
//CSJRewardUtil.Instance.LoadExpressRewardAd();
AdManager.Instance.ShowCacheBannerAd(Banner,"test");
AdManager.Instance.ShowCacheBannerAd(Banner, "test");
}
public void OnClickCloseBanner()
{
......@@ -136,12 +139,32 @@ public class AdDemo : MonoBehaviour
}
public void OnClickLoadFeed()
{
//StartCoroutine(GetAd());
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()
{
AdManager.Instance.ShowCacheFeedAd(Feed, "test");
//OnClickLoadFeed();
}
public void OnClickCloseFeed()
{
......@@ -165,7 +188,7 @@ public class AdDemo : MonoBehaviour
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));
}
......
......@@ -3025,6 +3025,11 @@ PrefabInstance:
propertyPath: m_Name
value: HTTP
objectReference: {fileID: 0}
- target: {fileID: 2853166085728200634, guid: 1053be02c113a7a45adf322c929b0cb6,
type: 3}
propertyPath: IS_TEST
value: 1
objectReference: {fileID: 0}
- target: {fileID: 2853166085728200635, guid: 1053be02c113a7a45adf322c929b0cb6,
type: 3}
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:
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
OcclusionCullingSettings:
m_ObjectHideFlags: 0
serializedVersion: 2
m_OcclusionBakeSettings:
smallestOccluder: 5
smallestHole: 0.25
backfaceThreshold: 100
m_SceneGUID: 00000000000000000000000000000000
m_OcclusionCullingData: {fileID: 0}
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 9
m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3
m_FogDensity: 0.01
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 3
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
m_SkyboxMaterial: {fileID: 0}
m_HaloStrength: 0.5
m_FlareStrength: 1
m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 11
m_GIWorkflowMode: 1
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 0
m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings:
serializedVersion: 12
m_Resolution: 2
m_BakeResolution: 40
m_AtlasSize: 1024
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 1
m_CompAOExponentDirect: 0
m_ExtractAmbientOcclusion: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 1
m_FinalGather: 0
m_FinalGatherFiltering: 1
m_FinalGatherRayCount: 256
m_ReflectionCompression: 2
m_MixedBakeMode: 2
m_BakeBackend: 1
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 512
m_PVRBounces: 2
m_PVREnvironmentSampleCount: 256
m_PVREnvironmentReferencePointCount: 2048
m_PVRFilteringMode: 1
m_PVRDenoiserTypeDirect: 1
m_PVRDenoiserTypeIndirect: 1
m_PVRDenoiserTypeAO: 1
m_PVRFilterTypeDirect: 0
m_PVRFilterTypeIndirect: 0
m_PVRFilterTypeAO: 0
m_PVREnvironmentMIS: 1
m_PVRCulling: 1
m_PVRFilteringGaussRadiusDirect: 1
m_PVRFilteringGaussRadiusIndirect: 5
m_PVRFilteringGaussRadiusAO: 2
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
m_PVRFilteringAtrousPositionSigmaIndirect: 2
m_PVRFilteringAtrousPositionSigmaAO: 1
m_ExportTrainingData: 0
m_TrainingDataDestination: TrainingData
m_LightProbeSampleCountMultiplier: 4
m_LightingDataAsset: {fileID: 0}
m_UseShadowmask: 1
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 2
agentTypeID: 0
agentRadius: 0.5
agentHeight: 2
agentSlope: 45
agentClimb: 0.4
ledgeDropHeight: 0
maxJumpAcrossDistance: 0
minRegionArea: 2
manualCellSize: 0
cellSize: 0.16666667
manualTileSize: 0
tileSize: 256
accuratePlacement: 0
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &61054147
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 61054150}
- component: {fileID: 61054149}
- component: {fileID: 61054148}
m_Layer: 0
m_Name: Main Camera
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!81 &61054148
AudioListener:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 61054147}
m_Enabled: 1
--- !u!20 &61054149
Camera:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 61054147}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 1
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
m_FocalLength: 50
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.3
far clip plane: 1000
field of view: 60
orthographic: 1
orthographic size: 5
m_Depth: -1
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 1
m_AllowMSAA: 1
m_AllowDynamicResolution: 0
m_ForceIntoRT: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
--- !u!4 &61054150
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 61054147}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &130740052
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 130740053}
- component: {fileID: 130740055}
- component: {fileID: 130740054}
m_Layer: 5
m_Name: Text
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &130740053
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 130740052}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 1256318124}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &130740054
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 130740052}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_RaycastTarget: 1
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 14
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 10
m_MaxSize: 40
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: Feed
--- !u!222 &130740055
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 130740052}
m_CullTransparentMesh: 0
--- !u!1 &718195566
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 718195567}
- component: {fileID: 718195569}
- component: {fileID: 718195568}
m_Layer: 5
m_Name: Text
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &718195567
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 718195566}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 1728463833}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &718195568
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 718195566}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5f7201a12d95ffc409449d95f23cf332, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_RaycastTarget: 1
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_FontData:
m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
m_FontSize: 14
m_FontStyle: 0
m_BestFit: 0
m_MinSize: 10
m_MaxSize: 40
m_Alignment: 4
m_AlignByGeometry: 0
m_RichText: 1
m_HorizontalOverflow: 0
m_VerticalOverflow: 0
m_LineSpacing: 1
m_Text: Splash
--- !u!222 &718195569
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 718195566}
m_CullTransparentMesh: 0
--- !u!1 &1256318123
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1256318124}
- component: {fileID: 1256318127}
- component: {fileID: 1256318126}
- component: {fileID: 1256318125}
m_Layer: 5
m_Name: Feed
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1256318124
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1256318123}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 130740053}
m_Father: {fileID: 2103191286}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 124, y: 419.81}
m_SizeDelta: {x: 221.93564, y: 66.367256}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1256318125
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1256318123}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 1256318126}
m_OnClick:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 2103191287}
m_MethodName: OnClickFeed
m_Mode: 1
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
--- !u!114 &1256318126
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1256318123}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!222 &1256318127
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1256318123}
m_CullTransparentMesh: 0
--- !u!1 &1433212422
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1433212425}
- component: {fileID: 1433212424}
- component: {fileID: 1433212423}
m_Layer: 0
m_Name: EventSystem
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1433212423
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1433212422}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4f231c4fb786f3946a6b90b886c48677, type: 3}
m_Name:
m_EditorClassIdentifier:
m_HorizontalAxis: Horizontal
m_VerticalAxis: Vertical
m_SubmitButton: Submit
m_CancelButton: Cancel
m_InputActionsPerSecond: 10
m_RepeatDelay: 0.5
m_ForceModuleActive: 0
--- !u!114 &1433212424
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1433212422}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3}
m_Name:
m_EditorClassIdentifier:
m_FirstSelected: {fileID: 0}
m_sendNavigationEvents: 1
m_DragThreshold: 10
--- !u!4 &1433212425
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1433212422}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1728463832
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1728463833}
- component: {fileID: 1728463836}
- component: {fileID: 1728463835}
- component: {fileID: 1728463834}
m_Layer: 5
m_Name: Splash
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1728463833
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1728463832}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 718195567}
m_Father: {fileID: 2103191286}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: -173.03, y: 419.81}
m_SizeDelta: {x: 221.93564, y: 66.367256}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1728463834
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1728463832}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 1728463835}
m_OnClick:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 2103191287}
m_MethodName: OnClickSplash
m_Mode: 1
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
--- !u!114 &1728463835
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1728463832}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!222 &1728463836
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1728463832}
m_CullTransparentMesh: 0
--- !u!1 &2103191282
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2103191286}
- component: {fileID: 2103191285}
- component: {fileID: 2103191284}
- component: {fileID: 2103191283}
- component: {fileID: 2103191287}
m_Layer: 5
m_Name: Canvas
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &2103191283
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2103191282}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: dc42784cf147c0c48a680349fa168899, type: 3}
m_Name:
m_EditorClassIdentifier:
m_IgnoreReversedGraphics: 1
m_BlockingObjects: 0
m_BlockingMask:
serializedVersion: 2
m_Bits: 4294967295
--- !u!114 &2103191284
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2103191282}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0cd44c1031e13a943bb63640046fad76, type: 3}
m_Name:
m_EditorClassIdentifier:
m_UiScaleMode: 1
m_ReferencePixelsPerUnit: 100
m_ScaleFactor: 1
m_ReferenceResolution: {x: 720, y: 1280}
m_ScreenMatchMode: 0
m_MatchWidthOrHeight: 0
m_PhysicalUnit: 3
m_FallbackScreenDPI: 96
m_DefaultSpriteDPI: 96
m_DynamicPixelsPerUnit: 1
--- !u!223 &2103191285
Canvas:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2103191282}
m_Enabled: 1
serializedVersion: 3
m_RenderMode: 0
m_Camera: {fileID: 0}
m_PlaneDistance: 100
m_PixelPerfect: 0
m_ReceivesEvents: 1
m_OverrideSorting: 0
m_OverridePixelPerfect: 0
m_SortingBucketNormalizedSize: 0
m_AdditionalShaderChannelsFlag: 0
m_SortingLayerID: 0
m_SortingOrder: 0
m_TargetDisplay: 0
--- !u!224 &2103191286
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2103191282}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0, y: 0, z: 0}
m_Children:
- {fileID: 1728463833}
- {fileID: 1256318124}
m_Father: {fileID: 0}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0, y: 0}
--- !u!114 &2103191287
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2103191282}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4945238a353523d47b31f6151e693571, type: 3}
m_Name:
m_EditorClassIdentifier:
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
#endif
Debug.unityLogger.Log("初始化广告");
AdManager.Instance.InitAd();
AdManager.Instance.InitAd(new Action<bool>((cb)=> {
}));
Debug.unityLogger.Log("加载开屏");
StartCoroutine(loadSplash());
}
......
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.company.product">
<!--必须要有的权限-->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_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.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
<uses-permission android:name="android.permission.GET_TASKS"/>
<!--最好能提供的权限-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!--必须要有的权限-->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_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.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
<uses-permission android:name="android.permission.GET_TASKS"/>
<!--最好能提供的权限-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!-- 如果有视频相关的广告且使用textureView播放,请务必添加,否则黑屏 -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<!-- 如果有视频相关的广告且使用textureView播放,请务必添加,否则黑屏 -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<application
android:name="com.bytedance.android.UnionApplication"
android:icon="@drawable/app_icon"
android:label="@string/app_name"
android:allowBackup="true"
android:supportsRtl="true">
<uses-library android:name="org.apache.http.legacy" android:required="false"/>
<activity android:name="com.unity3d.player.UnityPlayerActivity"
android:label="@string/app_name"
android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<application
android:name="com.bytedance.android.UnionApplication"
android:icon="@drawable/app_icon"
android:label="@string/app_name"
android:allowBackup="true"
android:supportsRtl="true">
<uses-library android:name="org.apache.http.legacy" android:required="false"/>
<activity android:name="com.unity3d.player.UnityPlayerActivity"
android:label="@string/app_name"
android:configChanges="fontScale|keyboard|keyboardHidden|locale|mnc|mcc|navigation|orientation|screenLayout|screenSize|smallestScreenSize|uiMode|touchscreen">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<provider
android:name="com.bytedance.sdk.openadsdk.TTFileProvider"
android:authorities="${applicationId}.TTFileProvider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
<provider
android:name="com.bytedance.sdk.openadsdk.TTFileProvider"
android:authorities="${applicationId}.TTFileProvider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
<provider
android:name="com.bytedance.sdk.openadsdk.multipro.TTMultiProvider"
android:authorities="${applicationId}.TTMultiProvider"
android:exported="false" />
</application>
<provider
android:name="com.bytedance.sdk.openadsdk.multipro.TTMultiProvider"
android:authorities="${applicationId}.TTMultiProvider"
android:exported="false" />
</application>
</manifest>
......@@ -24,14 +24,14 @@ public final class UnionApplication extends Application {
AppliContext.init(this);
UMConfigure.setLogEnabled(true);
UMConfigure.init(this, "602f890b668f9e17b8b31413", "xynt", UMConfigure.DEVICE_TYPE_PHONE,"");
// TTAdConfig config = new TTAdConfig.Builder()
// //.appId("5001121")
// .appId("5145269")
// .useTextureView(false) //使用TextureView控件播放视频,默认为SurfaceView,当有SurfaceView冲突的场景,可以使用TextureView
// .appName("APP测试媒体")
// .titleBarTheme(TTAdConstant.TITLE_BAR_THEME_DARK)
// .allowShowNotify(true) //是否允许sdk展示通知栏提示
// .allowShowPageWhenScreenLock(true) //是否在锁屏场景支持展示广告落地页
//TTAdConfig config = new TTAdConfig.Builder()
// .appId("5001121")
// .appId("5145269")
// .useTextureView(false) //使用TextureView控件播放视频,默认为SurfaceView,当有SurfaceView冲突的场景,可以使用TextureView
// .appName("APP测试媒体")
// .titleBarTheme(TTAdConstant.TITLE_BAR_THEME_DARK)
// .allowShowNotify(true) //是否允许sdk展示通知栏提示
// .allowShowPageWhenScreenLock(true) //是否在锁屏场景支持展示广告落地页
// .debug(true) //测试阶段打开,可以通过日志排查问题,上线时去除该调用
// .directDownloadNetworkType(TTAdConstant.NETWORK_STATE_WIFI, TTAdConstant.NETWORK_STATE_3G) //允许直接下载的网络状态集合
// .supportMultiProcess(false) //是否支持多进程,true支持
......@@ -39,7 +39,7 @@ public final class UnionApplication extends Application {
// .build();
// // 强烈建议在应用对应的Application#onCreate()方法中调用,避免出现content为null的异常
// TTAdSdk.init(this, config);
//TTAdSdk.init(this, config);
//如果明确某个进程不会使用到广告SDK,可以只针对特定进程初始化广告SDK的content
//if (PROCESS_NAME_XXXX.equals(processName)) {
......@@ -48,44 +48,44 @@ public final class UnionApplication extends Application {
}
// private static TTCustomController getController() {
// MyTTCustomController customController = new MyTTCustomController();
// return customController;
// MyTTCustomController customController = new MyTTCustomController();
// return customController;
// }
// private static class MyTTCustomController extends TTCustomController{
// @Override
// public boolean isCanUseLocation() {
// return super.isCanUseLocation();
// private static class MyTTCustomController extends TTCustomController{
// @Override
// public boolean 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
// public TTLocation getTTLocation() {
// return super.getTTLocation();
// }
// @Override
// public boolean alist() {
// return super.alist();
// }
// @Override
// public boolean isCanUsePhoneState() {
// return super.isCanUsePhoneState();
// }
// @Override
// public String getDevImei() {
// return super.getDevImei();
// }
// @Override
// public boolean isCanUseWifiState() {
// return super.isCanUseWifiState();
//
// @Override
// public String getDevImei() {
//// return super.getDevImei();
//}
//
// @Override
//// public boolean isCanUseWifiState() {
// return super.isCanUseWifiState();
//}
//
// @Override
// public boolean isCanUseWriteExternal() {
// return super.isCanUseWriteExternal();
// }
// @Override
// public boolean isCanUseWriteExternal() {
// return super.isCanUseWriteExternal();
// }
// }
//}
}
......@@ -5,8 +5,11 @@ PluginImporter:
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
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:
- enabled: 0
path: Assets/AdSDK/NetWork/Demo/HttpDemo.unity
guid: 1d254830c8b62484bb74d303cbb2cc3d
- enabled: 0
path: Assets/AdSDK/AD/ZXHC/ZXHCDemo/ZXHCDemo.unity
guid: cb50b98bfef171a4ea884c941dd43fa3
m_configObjects: {}
......@@ -175,7 +175,7 @@ PlayerSettings:
androidSupportedAspectRatio: 1
androidMaxAspectRatio: 2.1
applicationIdentifier:
Android: com.ym.xynt
Android: com.ym.yzqj
Lumin: com.DefaultCompany.com.unity.template.mobile2D
Standalone: com.DefaultCompany.com.unity.template.mobile2D
iPhone: com.DefaultCompany.com.unity.template.mobile2D
......@@ -185,7 +185,7 @@ PlayerSettings:
iPhone: 0
tvOS: 0
AndroidBundleVersionCode: 1
AndroidMinSdkVersion: 19
AndroidMinSdkVersion: 21
AndroidTargetSdkVersion: 0
AndroidPreferredInstallLocation: 1
aotOptions:
......@@ -282,36 +282,6 @@ PlayerSettings:
m_BuildTargetPlatformIcons:
- m_BuildTarget: Android
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_Width: 192
m_Height: 192
......@@ -372,6 +342,36 @@ PlayerSettings:
m_Height: 36
m_Kind: 1
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_BuildTargetEncrypting: []
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