ソースを参照

[修改]游可盈配置错误导致拉取开屏失败时,直接跳过

zeki 5 年 前
コミット
afd557ef7c

+ 0 - 2
app/src/main/java/com/sheep/gamegroup/greendao/DDProviderHelper.java

@@ -24,9 +24,7 @@ import com.sheep.gamegroup.util.DataUtil;
 import com.sheep.gamegroup.util.DownloadUtil;
 import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.service.AutoCheckService;
-
 import java.util.List;
-
 import rx.functions.Action1;
 
 /**

+ 38 - 6
app/src/main/java/com/sheep/gamegroup/view/activity/SplashAct.java

@@ -39,8 +39,10 @@ import com.sheep.jiuyan.samllsheep.SheepApp;
 import com.sheep.jiuyan.samllsheep.utils.SpUtils;
 import com.tencent.klevin.KleinManager;
 import com.tencent.klevin.base.callback.KleinResponseCallback;
+
 import java.util.ArrayList;
 import java.util.List;
+
 import butterknife.BindView;
 import butterknife.OnClick;
 import io.reactivex.Observable;
@@ -48,6 +50,7 @@ import io.reactivex.Observer;
 import io.reactivex.android.schedulers.AndroidSchedulers;
 import io.reactivex.functions.Action;
 import io.reactivex.schedulers.Schedulers;
+
 import static com.sheep.gamegroup.view.activity.helper.AdHelper.*;
 import static com.tencent.klevin.base.okhttp.ErrorCode.*;
 
@@ -75,6 +78,8 @@ public class SplashAct extends BaseActivity {
     @BindView(R.id.ad_flag)
     View ad_flag;
     private boolean goLink;//跳转到了广告对应的页面
+    //是否强制跳转到主页面
+    private boolean mForceGoMain = false;
 
     private RxjavaCountDownTimer timer;
 
@@ -123,11 +128,12 @@ public class SplashAct extends BaseActivity {
                     boolean isNewSmallSheep = baseMessage.getData(Boolean.class);
                     DataUtil.getInstance().setIsNewSmallSheep(isNewSmallSheep);
                     if (SysAppUtil.isNewSmallSheep()) {//新版本只显示引导页面,不展示弹窗和开屏广告
-                        fetchAdvertisement(()->{});//只更新,不加载
+                        fetchAdvertisement(() -> {
+                        });//只更新,不加载
                         sendHandlerMessages(2000);
                     } else {
                         //拉一次广告,并加载
-                        fetchAdvertisement(()->{
+                        fetchAdvertisement(() -> {
                             if (ad != null) {
                                 if (ad.getAd_type() == AD_TYPE_SHEEP) {
                                     //是自己的广告,展示自己的广告
@@ -179,7 +185,7 @@ public class SplashAct extends BaseActivity {
                     public void onFail(int i) {
                         if (BuildConfig.DEBUG)
                             Log.d("!!!!!Fail", String.valueOf(i));
-                        if(i == KLSplashAdEvent_Timeout){
+                        if (i == KLSplashAdEvent_Timeout) {
                             //拉取广告错误或超时,直接跳过
                             sendHandlerMessages(0);
                         }
@@ -218,19 +224,19 @@ public class SplashAct extends BaseActivity {
             public void onSplashClick() {
                 Log.i("jasmine-ad", "点击广告");
                 AdHelper.stat(ad.getAd_id(), 2, ad.getAd_type());
-                sendHandlerMessages(0);
+                //sendHandlerMessages(0);
             }
 
             @Override
             public void onSplashDismissed() {
                 Log.i("jasmine-ad", "广告关闭");
-                sendHandlerMessages(0);
+                next();
             }
 
             @Override
             public void onSplashError(String err, boolean isTimeout) {
                 Log.i("jasmine-ad", "展示广告异常:" + err);
-                sendHandlerMessages(0);
+                next();
             }
 
             @Override
@@ -260,6 +266,18 @@ public class SplashAct extends BaseActivity {
 
     }
 
+    /**
+     * 重要 mForceGoMain跳转主页 请参照此方法调用,否则可能导致广告展示链路断开 导致收益下降!!!
+     * 设置一个变量来控制当前开屏页面是否可以跳转,当开屏广告为普链类广告时,点击会打开一个广告落地页,此时开发者还不能打开自己的App主页。当从广告落地页返回以后,
+     * 才可以跳转到开发者自己的App主页;当开屏广告是App类广告时只会下载App。
+     */
+    private void next() {
+        if (mForceGoMain) {
+            sendHandlerMessages(0);
+        } else {
+            mForceGoMain = true;
+        }
+    }
 
     //从服务端拉取广告信息
     private void fetchAdvertisement(Action action) {
@@ -440,6 +458,19 @@ public class SplashAct extends BaseActivity {
         if (goLink) {
             sendHandlerMessages(10);
         }
+        //判断是否该跳转到主页面
+        if (mForceGoMain && ad != null && ad.getAd_type() == AD_SPLASH_TYPE_YT) {
+            next();
+        }
+        mForceGoMain = true;
+
+
+    }
+
+    @Override
+    protected void onStop() {
+        super.onStop();
+        mForceGoMain = true;
     }
 
     @Override
@@ -447,6 +478,7 @@ public class SplashAct extends BaseActivity {
         super.onPause();
         if (splash_video_view != null)
             splash_video_view.pause();
+        mForceGoMain = false;
     }
 
     @Override