Про батарейку

luk911

Client
Регистрация
17.01.2013
Сообщения
1 542
Благодарностей
579
Баллы
113
Продолжу тему начатую вот тут https://zennolab.com/discussion/threads/navigatorfield-battery-otkljuchaet-ehmuljaciju-batarei-v-chrome.81583/#post-546064

Приглашаю в тему arhip1985

Собственно его код и будем обсуждать. Файл проекта во вложении.
Собственно что меня смутило, смутило то что на странице проверки, а насколько я помню это была официальный пример указанный в документации на мозили http://robnyman.github.io/battery/
так вот на этой странице код arhip1985 вообще не хочет работать никак.

Второй момент, я пытался играться с диапозонами и не понял какие диапозоны допустимы.
Я имею ввиду
dischargingTime: 7929751,
level: 0.43

часто при изменении этих параметров в том числе и этот сайт http://pazguille.github.io/demo-battery-api/
начинает показывать 100%
 

Вложения

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 418
Благодарностей
5 454
Баллы
113
Проблема в js в том, что в любой момент код может слететь, а выполнять его каждый шаг такое себе.
 
  • Спасибо
Реакции: zarufakis и luk911

Iv1

Client
Регистрация
21.02.2016
Сообщения
1 947
Благодарностей
767
Баллы
113
1. Кто подскажет как сделать для C# instance.ActiveTab.MainDocument.EvaluateScript(s); чтобы выставились параметры как в кубике?
61004
2. В этой эмуляции баратейки глобальные косяки

-1 Это считай каждый раз надо для каждой вновь открываемой вкладки делать. Что просто жесть.
-2 Тут есть параметр dischargingTime, который тикает. Т.е. сайт же может опрашивать его 10 раз в секунду и что? Это как то можно заэмулировать самому? тут только сами разрабы могут это ввести
-3 Возможно менее паливано показывать что мобильное устройство полностью заряжено и находится на зарядке, чем давать несоответствие заряда батареи и времени разрядки. ИМХО - это криво, но менее паливно.
 

luk911

Client
Регистрация
17.01.2013
Сообщения
1 542
Благодарностей
579
Баллы
113
По идеи, конечно этому апи осталось жить пару месяцев, остальное будет по W3C большую часть проверок которых, Зинаида проходит. Но есть и те, которые нет.
 

Iv1

Client
Регистрация
21.02.2016
Сообщения
1 947
Благодарностей
767
Баллы
113
По идеи, конечно этому апи осталось жить пару месяцев, остальное будет по W3C большую часть проверок которых, Зинаида проходит. Но есть и те, которые нет.
Ничего не понятно из сказанного)
 

luk911

Client
Регистрация
17.01.2013
Сообщения
1 542
Благодарностей
579
Баллы
113
Ничего не понятно из сказанного)

 
  • Спасибо
Реакции: Mikhail B.

Iv1

Client
Регистрация
21.02.2016
Сообщения
1 947
Благодарностей
767
Баллы
113

interface BatteryManager : EventTarget {
readonly attribute boolean charging;
readonly attribute unrestricted double chargingTime;
readonly attribute unrestricted double dischargingTime;
readonly attribute double level;
attribute EventHandler onchargingchange;
attribute EventHandler onchargingtimechange;
attribute EventHandler ondischargingtimechange;
attribute EventHandler onlevelchange;
};


Что-то, на мой взгляд, еще хуже стало с тем, что надо эмулировать и что по времени само должно меняться в фоне.
 

Mikhail B.

Client
Регистрация
23.12.2014
Сообщения
14 418
Благодарностей
5 454
Баллы
113
Что-то, на мой взгляд, еще хуже стало с тем, что надо эмулировать и что по времени само должно меняться в фоне.
Чем больше вникаешь, тем больше понимаеш что мы под колпаком. А кто-то еще верит в анонимность и свободу слова.
 

arhip1985

Client
Регистрация
31.10.2011
Сообщения
2 994
Благодарностей
787
Баллы
113
в том коде я менял
dischargingTime: 7929751, - это время без зарядки, просто на глаз прикинул за какое время время так разрядится телефон
level: 0.43 - это уровень заряда батареи, для подмены в жс коде ставил 0.{-Variable.rndbuttery-} (предварительно в кубике генерил случайное число от 10 до 90 и устанавливал в переменную rndbuttery)

в коде там два раза эти параметры вставляются и когда вставляю рандомные значения из диапазона - то всегда показывает как указал - на сайте - http://pazguille.github.io/demo-battery-api/

но чтобы корректно определялось на других сайтах надо ещё эмулировать события:
attribute EventHandler onchargingchange;
attribute EventHandler onchargingtimechange;
attribute EventHandler ondischargingtimechange;
attribute EventHandler onlevelchange;

т.е. для каждого события писать эмуляцию и эти события должны менять соответствующие параметры
dischargingTime: 7929751
level: 0.43
(другие два параметра могут быть статичными - поскольку батарея либо заряжается, либо разряжается)
в жс не разбираюсь сейчас настолько глубоко, чтобы написать это.
в том коде, что выкладывал просто подменяются отдельные параметры через создания proxy для вызова гетбаттери, но там только свойства без событий
dischargingTime
level
, а по хорошему надо писать полноценный new Promise со всеми событиями батареи и его передавать через прокси при вызове гетбаттери
 
  • Спасибо
Реакции: luk911

arhip1985

Client
Регистрация
31.10.2011
Сообщения
2 994
Благодарностей
787
Баллы
113
  • Спасибо
Реакции: luk911 и Iv1

Fedor5588

Client
Регистрация
04.06.2017
Сообщения
313
Благодарностей
73
Баллы
28
У кого нибудь есть решение может сниппет в этом направлении, прочитал всю ветку, ничего не понял. Работаю с сайтом который палит батарейку
 

Кто просматривает тему: (Всего: 3, Пользователи: 0, Гости: 3)