提问:关于原生端激励视频的设计

明白了,那就行了,感谢
:joy:我就是个前端,前端能做的我尽量做到位,需要服务端参与才能做到的东西那我就管不了了

看你骨骼清奇,跟我学做服务端吧。

加个时间判断,视频开始,和视频播放结束,然后可以做个安卓屏幕显示的Activity的判断是不是视频界面,能做的就这么多了

开始结束我能做,那个屏幕显示怎么做?求教,给个教程也好

android 端记录观看广告状态 收到reward奖励信息回调后重置状态 android调用js后根据判断回传参数来确定是否看广告成功确定js端所执行的逻辑

:joy:我也想,但是。。。生存压力。。。

可能不太好判断,广告Activity在前时,游戏Activity是停止的,hmmm…取时间戳倒是可以……

不过人家都改包了,你验不验都一样了,不改包验不验其实也一样。

public static String getTopActivity(){
    ActivityManager am =   (ActivityManager) getContext().getSystemService(getContext().ACTIVITY_SERVICE);

    ComponentName cn =   am.getRunningTasks(1).get(0).topActivity;
    return cn.getClassName();

}

我也是这么设计的,主要是看回调的evalString好像得走window.function,担心会出现那种不经过广告直接调用window.function的事情发生

:kissing_heart:感谢大佬

他调他的 只要状态没被更改 他调用又没得实际意义

我意思是,他调用观看广告之后,这里状态已经转换成了播放视频,然后不等视频播放完成直接java调用js获取奖励,就算我再判断个视频播放完成状态,始终也得从java调js,这里想来想去最多也就只能记录个时间戳,如果提前关闭就认为失败,不过这里我没看见视频时长的接口,就算有也是在java,我主要是觉得java调用js注册在window上的接口感觉不安全,我对js了解不深,但是看前端同事(做网页的)调试的时候各种自己注册函数调试,总觉得这块不怎么安全的样子

比如我这里:


原本默认是0,结果我在浏览器中可以直接调用check方法,根本没经过正常流程,而且还能调用成功:
截屏2021-12-27 下午5.05.17

那你是浏览器,浏览器的确可以直接调用公共方法,编译成安卓就没这个问题了。

其次,你发放奖励本身,可以用闭包直接给事件回调里使用,这样就避免公共方法的问题了。

最后,时间限制其实不用这个精确,一个广告是40s~90s不等,在加上游戏的一些常规操作,你可以简单判定,50s或者60s的广告完成间隔,你总不会是一个广告接着一个广告的那种游戏吧?

给一个静态方法 在js回调里获取android端是否观看完成不行么

我意思是java调用js的时候,不确定是游戏正常逻辑还是玩家手动调用的注入到window的接口

:joy:没有就好。。。