Задать вопрос
  • Как прописать инлайновый скрипт в manifest v3?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    "script-src 'self'". Either the 'unsafe-inline' keyword

    self зарегистрированное слово. this , self что делают в js ? Нельзя свои скрипты называть зарегистрированными словами
    Ответ написан
    1 комментарий
  • Что я делаю не так в PHPMailer?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    smtp.gmail.com - не работает там по умолчанию старый способ авторизации через плайн текст логина и пароля. Давно не проверял. Может еще остались настройки, чтобы его включить, а может совсем отказались.
    Ответ написан
    Комментировать
  • Знает ли кто примеры android приложений, дающих оплатить через vk pay?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    ну если такое найдете в плее, то молодец. А вот модерация его пока не заметила.
    По правилам стора, стороние платежные системы допустимы только для продажи физических товаров.
    Ну и кой чего другого. Например такси.
    Все услуги (функции приложений) предоставляемые в цифровом виде должны оплачиваться только через них.
    Там еще нужно уточнять . контент это или собственно лицензионно за пользование программой
    Ответ написан
  • Processing добавление google play рекламы и доната?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    https://discourse.processing.org/search?q=admob
    гугл плей рекламы нет. по форуму надо было искать admob
    Ответ написан
  • Как позиционировать уведомления Toast?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    https://developer.android.com/reference/android/wi...

    Написал сперва ответ никак. Потом засомневался а прав ли. До 30го апи гравити работало.
    Ответ написан
    Комментировать
  • Парсинг table width=580 при помощи phpQuery?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    а если посмотреть внимательней , то там все сверстано через таблицы.
    А таблицы это строки. Нужные с 2мя и 4мя ячейками.
    0 и 2 в строке сожержат название , 1 и 3 - значения
    Ну и остается по названиям разбираться а чего тут прочитали.
    Ответ написан
  • Платёжную систему на сайт, какую выбрать?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Ответ написан
    Комментировать
  • Как поменять заглавную фоновую картинку на видео?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    https://html5css.ru/howto/howto_css_fullscreen_vid...
    php,wp здесь не причем. html+css+js
    Ответ написан
    Комментировать
  • Дает ли какието привелигии приложению в магазине, если сделать бонусы за ежедневное посещение?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    DAU - подымется. опосредственно скажется на MAU.
    А вот от степени настырности напоминаний может ускорить отток пользователей.
    Например, я поставил вашу игрушку. Не заинтерсовала. Но стирать сразу не стал.
    После нотифи я ее сотру. И тут у Вас просядет показатель среднее время до удаления.
    Ответ написан
    Комментировать
  • Как заработать на своём сервере?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Сервера должны стоять в дата центре. В своем гараже в розетку их не достаточно включить. А тарифы за колокейшен почти равны цене аренды Дедика. Ну может в плюс 30-40 %, сможете добавить. Так там ещё налоги, лицензии и прочие расходы.

    Ну может целыми стойками место арендуете. Будет дешевле.
    Ответ написан
    Комментировать
  • Как сделать require файла который находится выше папки домена?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    https://www.php.net/manual/ru/ini.core.php#ini.ope...
    https://www.php.net/manual/ru/configuration.changes.php

    Первая ссылка про директиву ограничивающую откуда можно рекьюрить(инклюдить) файлы. Вторая как можно изменять значения в php.ini
    Ответ написан
    Комментировать
  • Возможно ли управлять андроид устройством на пк через провод, без доступа к самому устройству?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Разбит тач - поможет мышка .
    Разбит экран- только цеплять другой.
    Без визуального отклика не реально сделать следующие шаги.
    Снять блок.
    Зайти в настройки и включить режим разработчика.
    Включить режим отладки.
    Дать разрешение конкретному ПК.
    Тут ещё кнопка,то слева, то справа рисуется.
    Ответ написан
    Комментировать
  • Как загрузить файл в папку загрузок с именем файла от сервера?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Долго не мог понять в чем проблема.
    У вас урл к динамике, где изначасльно не известно имя файла.
    Знаю только один способ. Сперва делаете запрос к серверу за именем файла (только заголовки без самого тела)
    https://stackoverflow.com/questions/23069965/get-f...
    потом уже обращаетесь к менеджеру закачек
    Будет работать, если сервер поддерживает HEAD запросы.
    Попробуйте сперва curl'ом с компьютера , будет ли работать в принципе с вашим бакендом.
    Ответ написан
    Комментировать
  • Как отправить текст с компьютера на терминал android через bluetooth?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    https://askubuntu.com/questions/248817/how-to-i-co...

    А вот, что Вы запустите на андроиде уже знаете ?
    Ответ написан
    Комментировать
  • Почему возникает ошибка ERR_HTTP_HEADERS_SENT?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    после 400 добавь ретурн. 200 и запрос поменяй строки местами.

    У тебя получается послать 200, послать 500. А два разных нельзя
    Ответ написан
  • Как правильно понять причину отклонения?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Новая волна в плее. До этого боролись с полным доступом к файлам (май прошлого года). Еще раньше выпили менеджеры буфера обмена и запись звонков. Теперь закручивают для лиц с ограниченными возможностями.
    Через эту дырку можно делать, то что запретили раньше. Так, что или приложение будет использовать апи по назначению либо не пройдет модерацию.

    API для специальных возможностей
    API для специальных возможностей нельзя использовать:

    для изменения настроек пользователя без его согласия или блокировки отключения или удаления приложений или сервисов, за исключением случаев, когда разрешение было предоставлено родителем или законным представителем через приложение родительского контроля или уполномоченными администраторами через программное обеспечение для управления корпоративными устройствами;
    для работы в обход настроек конфиденциальности, встроенных в операционную систему Android;
    для модификации пользовательского интерфейса или взаимодействия с ним в нарушение правил Google Play для разработчиков (например, с целью обмана пользователей).
    API для специальных возможностей не предназначен для удаленной записи звонков и не может запрашиваться для этой цели.

    Использование API для специальных возможностей должно быть отмечено на странице приложения в Google Play.

    Рекомендации по использованию метода IsAccessibilityTool
    Если основным назначением приложения является непосредственная поддержка людей с инвалидностью, вы можете указать, что это ПО для обеспечения специальных возможностей, выполнив метод IsAccessibilityTool.

    В противном случае вы не можете использовать этот метод, но приложение все равно должно соответствовать требованиям к раскрытию информации и получению согласия пользователей, описанным в правилах в отношении пользовательских данных, поскольку поддержка специальных возможностей неочевидна. Чтобы узнать больше, прочитайте статью об AccessibilityService API в нашем Справочном центре.

    Используйте API и разрешения с более узкой областью действия, чем у API для специальных возможностей, если этого достаточно для желаемой функциональности.

    Дата вступления в силу: 11 июля 2022 г.


    P.S. Мне пришлось бодаться с модерацией за MANAGE_EXTERNAL_STORAGE . Прилетает реджект на обновление.
    В опеляции повторил тоже что и в описании на пермишен. На странице сильнее выпятил, что это единственная функция у приложения. Добил описанием как это можно использовать совместно с другими программами.
    Я специально из основного приложения выпиливал в отдельное - обсервер директории, который следит за новыми файлами и шлет из на печать.
    Ответ написан
    3 комментария
  • Как заставить телеграм бота автоматически отправлять сообщение в заданное юзером время?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    cron, mysql, своя очередь/расписание заданий

    каждую минуту стартует через крон скрипт
    проверка необходимости исполнения задачи через время меньше или равно текущему . Запрос в базу данных.
    по всем выбранным
    сделал что там нужно
    если задача периодическая , то ставишь новое время у таска в очереди.
    Ответ написан
    Комментировать
  • Можно ли в телеграм боте создать отдельный чат?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Я правильно понял. На фразы, которые бот не опознал как команды, или на специальную команду написать админу.
    Нужно реализовать механизм ответа в режиме чата с админом.

    Ну так можно отлица бота админу послать сообщение, а когда он на такое сообщение делает ответ, то
    бот понимает кому отвечали и этот ответ пересылает клиенту.

    Во первых смотрим от кого пришло сообщение (от админа - одна ветка) (от пользователя - другая)

    return Request::forwardMessage([
                'chat_id' => $manager_id,
                'from_chat_id' => $this->getMessage()->getChat()->getId(),
                'message_id' => $this->getMessage()->getMessageId(),
            ]);

    $manager_id - ТИД админа
    'from_chat_id' => $this->getMessage()->getChat()->getId(), - а это оригинальный тид того, кто писал боту

    private function _send2client($manager_id){
            $forward = $this->getMessage()->getReplyToMessage();
            if (!is_null($forward)) {
                $client_id = $forward->getForwardFrom()->getId();
                $client_name = $this->getMessage()->getReplyToMessage()->getForwardFrom()->getFirstName();
    
                Request::sendMessage([
                    'chat_id' => $client_id,
                    'text' => $this->getMessage()->getText(),
                ]);
    
                return Request::sendMessage([
                    'chat_id' => $manager_id,
                    'text' => "отправлено " . $client_name,
                ]);
            }
            return Request::sendMessage([
                    'chat_id' => $manager_id,
                    'text' => "Вы менеджер. Сообщение нужно адресовывать конкретному клиенту.",
            ]);
        }


    Там немного посложнее и пример был для php библиотеки от Longman
    Ответ написан
    Комментировать
  • Как узнать загрузилась ли страница PHP?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    есть понятие URI (URL)
    броузер обращается к сайту
    В запросе передается URL , служебные заголовки (авторизация и куки это в заголовках) , также может быть тело запроса ( поля формы, файлы, ajax).

    Передать из js в PHP проще всего послав ajax запрос.
    На такой запрос чаще всего в ответ получают json (то есть PHP не генерирует html , а посылает нужные заголовки в ответ и кодированные в json данные)

    При генерации HTML кода страницы можно аналогично собрать js вставку. Простейшая
    <script>
      var foo="<?php  echo $foo;?>";
    </script>
    Ответ написан
    Комментировать
  • Как сохранить Uri в директории приложение?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>

    сразу советую . Ищите решение не требующее этого (MANAGE_EXTERNAL_STORAGE") разрешения.
    Только на прошлой неделе ругался с модерацией из-за reject по этой причине.

    Лучше сохраните в галерею.
    mContext.getContentResolver().insert(Images.Media.EXTERNAL_CONTENT_URI, values);

    В этом случае пермишен нужен только для младших версий
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="29" />

    11 и 12 разрешат сохранить молча. Ниже придется просить сперва пермишен.

    И еще раз подумайте почему нельзя сохранять в папке самого приложения ?
    Вы потом их другим программам должны дать ?

    Если для целей кеширования, то у меня вот так сделано
    static public @Nullable
        Uri cacheUri(Uri uri, Context context) throws IOException {
    
    
                InputStream inputStream = context.getContentResolver().openInputStream(uri);
                if (inputStream != null) {
    
    
                    java.io.File outputDir = Objects.requireNonNull(context).getCacheDir(); // context being the Activity pointer
                    java.io.File outputFile = java.io.File.createTempFile("spool_job_", "",outputDir);
    
                    BufferedInputStream input = new BufferedInputStream(inputStream);
                    BufferedOutputStream output = new BufferedOutputStream(new FileOutputStream(outputFile));
    
                    // read and write into the cache directory
                    byte[] bArr = new byte[8192];
                    while (true) {
                        int read = input.read(bArr);
                        if (read < 0) {
                            break;
                        } else {
                            output.write(bArr, 0, read);
                        }
                    }
                    // close the streams
                    input.close();
                    output.close();
                    return Uri.fromFile(outputFile);
                }
    
            return null;
        }
    Ответ написан