我正在尝试跟踪 HTML 视频中的视频播放进度。我需要跟踪 0、25、50、75 和 100%。我不确定我做错了什么,无法让 console.logs 工作。js小提琴
我得到错误
未捕获的类型错误:无法读取 null 的属性“on”
请提供任何帮助/建议
var myPlayer = document.querySelector('video');
var percentageCompleted = 0;
var totalLength = 0;
var videoStarted, videoTwentyFive, videoFifty, videoSeventyFive, videoComplete = false;
myPlayer.on('timeupdate', getPercentage);
function getPercentage() {
percentageCompleted = (myPlayer.currentTime() / totalLength) * 100;
//console.log('percentage', (percentageCompleted+'%'));
// is 0
if ((!videoStarted) && (percentageCompleted > 0)) {
console.log('VIDEO_STARTED');
videoStarted = true;
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
'event': 'playStart'
});
}
// is 25
if ((!videoTwentyFive) && (percentageCompleted > …Run Code Online (Sandbox Code Playgroud) 我对 Daggers 依赖注入还很陌生。我正在使用 Dagger 2 和 Kotlin 开发一个新应用程序。我从一个用于构建的基本入门应用程序开始。在 App.kt 中,每个活动都会自动注入,到目前为止这非常酷。然而,我现在在实施 Facebook 和 Google 社交登录时遇到了问题。
当应用程序尝试启动 Facebook 或 Google 登录活动时,我收到错误消息:
"No injector factory bound for Class<external.activities.classNameHere>"
我无法 @Provides 这些外部类,因为它们没有实现 @Module 注释。
我的临时解决方案是在自动注入之前检查正在注入的活动,并跳过那些外部类。虽然这看起来有点奇怪,我想知道是否有更好的解决方案或者我是否遗漏了一些东西。我可以看到这个 if 语句随着时间的推移变得相当长。
registerActivityLifecycleCallbacks(object : ActivityLifecycleCallbacks() {
override fun onActivityCreated(p0: Activity?, p1: Bundle?) {
p0?.let {
if (p0 is FacebookActivity || p0 is CustomTabMainActivity || p0 is CustomTabActivity ) {
Log.d("KSULog", "App.kt is not injecting activity " + p0.toString())
}
else {
AndroidInjection.inject(p0)
}
}
}
})
}
Run Code Online (Sandbox Code Playgroud)
谢谢参观。