Что за зверь такой?
By the same author, discover the new web client-side programming language
based on established BASIC rules
Что-то не нашел описания принципов работы.
В частности - что должно быть на серверной стороне?
PureBasic - форум |
Привет, Гость! Войдите или зарегистрируйтесь.
Вы здесь » PureBasic - форум » SpiderBasic » SpiderBasic
Что за зверь такой?
By the same author, discover the new web client-side programming language
based on established BASIC rules
Что-то не нашел описания принципов работы.
В частности - что должно быть на серверной стороне?
http://www.spiderbasic.com/download.php
Это конвертер из бейска в JavaScript и HTML. Работает в браузере. На серверной стороне может быть PB с использованием библиотеки CGI, правда не все хостинги такое поддерживают.
Увидел что SpiderBasic был предложен как компилятор для Андроид, попробовал пример моей пятнашки в веб-браузере, нормально работает. Захотелось сделать приложение Андроид, сначала потребовал указать JDK скачал SE вариант (jdk1.8.0_291 и jdk1.8.0_261 пробовал), при компиляции доходит до 60% с выдаёт ошибку "App build failed" (вот тема но не вижу решения). Может "IAP Key" не указал (написано включать отладчик если без IAP). Кто в курсе как это всё настраивать?
Отредактировано AZJIO (20.04.2022 21:09:33)
Сейчас проверил свою древнюю установку и собрал APK стандартного примера канваса с флагом демо.
Кто понимает текущую ситуацию с подписью APK? Какие альтернативы кроме гугла? Ткните носом в какую то статью для чайников. Я не планировал регистрироваться в г-плэй и соответственно не разбирался. А сейчас вообще не понятно.
Недавно скачал беспл. версию (2.31) Спайдера и попробовал делать браузерные программки и тестировать на телефоне (андроид 10). Работает, хотя запись в файл не на всех браузерах (на яндекс лайт не пишет). Меня больше всего интересовала геолокация. В верс. 2.31 - не всё ладно было. Но буквально на днях вышла новая версия 2.40 и немедленно скачал. Автор Фред писал, что геолокацию подправил. Еще не проверял, зато впервые попробовал собрать АРК - примерчик отсюда: https://forums.spiderbasic.com/viewtopic.php?t=1478 . Удалось, но не с первой попытки. На телефон установилось, хоть он и ворчал за отсутствие подписи.
Завтра напишу, как это удалось сделать, сегодня сил нет, напырялся с этим спайдером.
... Захотелось сделать приложение Андроид, сначала потребовал указать JDK скачал SE вариант (jdk1.8.0_291 и jdk1.8.0_261 пробовал), при компиляции доходит до 60% с выдаёт ошибку "App build failed" (вот тема но не вижу решения). Может "IAP Key" не указал (написано включать отладчик если без IAP). Кто в курсе как это всё настраивать?
Расскажу, как у меня получилось. Но я не очень программист, а в системщине вообще ни бум-бум. Мои действия не были осмысленными, просто протыкивал.
ОС Win7 x 64. Но JDK установил х32, (jdk1.8.0_202). Именно эту версию, поскольку на оф. форуме SB, в ответ на чью-то жалобу "АРК не создается!", знаток ответил: "у вас есть JDK 8u202 586 (32-разрядная) версия и понятная установка spiderbasic?" [ Ссылка ]
Пытался скачать эту JDK с оф. сайта Оракла, но он скачать не дал. Видать, учуял русский дух. Скачал в другом месте ( Теперь на моем я-диске ). Просмотрел несколько инструкций по установке на Win7. Различия в задании переменных окружения - одни учителя ставят в конце обратный слэш, другие - нет. Я поставил, не жалко.
JAVA_YOME : C:\Program Files (x86)\Java\jdk1.8.0_202\
PATH : C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\AMD APP\bin\x86_64;C:\Program Files (x86)\AMD APP\bin\x86;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files (x86)\Java\jdk1.8.0_202\bin\ (толстым выделил добавленное)
В настройках среды SB ничего не менял, только указал путь к JDK, как в инструкции Ссылка. Исходники примеров лежат в C:\ProgramData\SpiderBasic\Examples (кою папку программа "Компьютер" не показывает, но я пользуюсь FARом). В эту же папку кладется и АРК в случае успешного создания.
Далее было несколько безуспешных попыток, где провал происходил на 40 или 60%. Всего уже не помню, был ошалемши. Помню, что убрал из настроек компилятора localhost:8080 (прописывал для WEB приложения), В Package ID заменил рекомендованный в инстр. по ссылке выше свой ник на оф. форуме на "com.spiderbasic.showtime", где "showtime" - имя программы. И, с горя, поменял свой советский IP на французский, что, как выяснилось, было лишним в принципе - сборка проходит без доступа в инет. А, еще отключил автоматич. перенос АРК на устройство через USB.
Скриншот формы "Create APP" мне сюда загрузить не удалось, так что словами: Всё, кроме Package ID - как в инстр. по ссылке выше. Попытка вставить путь в строку "Output filename" привел к провалу сборки АРК. Надо только имя файла, оно не хочет класть АРК никуда, кроме C:\ProgramData\SpiderBasic\Examples, где лежит исходник.
П.С. Скриншот сдесь (файл "Настройки.jpg"). И, некстати, там есть мультик, собранный РВ-программой из ЖПС-треков участников парусной гонки. Для развлекухи.
...
Кто понимает текущую ситуацию с подписью APK? Какие альтернативы кроме гугла? Ткните носом в какую то статью для чайников. Я не планировал регистрироваться в г-плэй и соответственно не разбирался. А сейчас вообще не понятно.
Глянь сюда . Я понять не пытался, поскольку не знаю, зачем мне подпись. Кстати, зачем?
Отредактировано ЗАК (03.12.2022 02:58:52)
useful
если коротко то:
1. ставишь https://github.com/AndnixSH/APKToolGUI/releases/
2. в поле "APK file to sign" перетаскиваешь APK-файл, после завершения файл будет подписан тестовой подписью..
Именно эту версию, поскольку на оф. форуме SB
поставил jdk-8u333-windows-i586.exe - apk - собралось
Я понять не пытался, поскольку не знаю, зачем мне подпись. Кстати, зачем?
оригинальная подпись говорит о том что APK - оригинальный, и его никто не модифицировал (например "вирусмейкеры"), ну и для организационных мероприятий распространения..
Отредактировано Lin (03.12.2022 05:19:44)
Глянь сюда . Я понять не пытался, поскольку не знаю, зачем мне подпись. Кстати, зачем?
Когда я писал про подпись, подразумевал появление каких то нововведений в части подписывания для публикации в появившихся RuMarket, NashStore, RuStore
p.s. Уточню. Во всех документах которые я встречал фигурирует: ... подписать ... для последующей публикации в google play.
Я и подумал, что например для Huawei AppGallery или наших инструкция другая
Отредактировано useful (03.12.2022 10:33:53)
Опять здрасьте.
Lin, спасибо! APKToolGUI скачал, но еще не.
Попытался собрать АРК чуть более сложной, чем часы, программки - записатора ЖПС трека. Как водится, с первой попытки - хрен в нос. Провал. Заругалось на отс. Cordova телеметрии (а оно и раньше ругалось, но ничего) и предложило сделать "run cordova telemetry on". Где его маму надо run - черт знает. Включил инет - АРК успешно создался. С дебужным окном. Отключил деб. выдачу
CloseDebugOutput()
!$('div').eq(0).remove()
и больше ничего не менял. Опять провал - оно не нашло какого-то файла, какого - неизвестно, поскольку в жлобском окне путь к нему не поместился - шерше ля фам где хочешь (хачу французской крови!) . "Шерше - шерше, плюнул и опять марше". Плюнул - в смысле - шершеть не стал, а просто перезапустил компилятор. АРК благополучно создался. Завтра пойду гулять по деревне и писать трек.
Вывод (предварительный): даже после успешной сборки надо перезапускать компилятор перед следующей. Но это не точно - только на основании одного опыта.
Отредактировано ЗАК (04.12.2022 23:33:39)
Коллеги, а есть кто с наличием в руках OsX,iOs и кому интересен SpiderBasic?
Такая ошибка, есть идеи?
JAVA_YOME
Точно JAVA_YOME, не JAVA_HOME?
Кстати, погуглил "Picked up _JAVA_OPTION", ничего внятного не нашёл, просто параметр где число может быть 256, 512, 1024 и кто-то увеличивал это значение до 16384. Только что это должно дать?
Написано запустить с опцией --stacktrace, но где её воткнуть?
Нашёл причину:
FAILURE: Build failed with an exception. * Where: Build file 'C:\Users\пїЅпїЅпїЅпїЅпїЅпїЅ2\AppData\Local\Temp\SpiderBasic5658500\app\platforms\android\build.gradle' line: 20
вот так он видит папку пользователя на русском языке.
Короче создал нового пользователя в Windows с латинскими буквами в имени и всё сразу собралось.
Этому SpiderBasic тоже наверно перевод надо делать. Оказывается галка "Отладка" создаёт отладочное окно в проге на телефоне, что конечно же не нужно в итоговой программе. И ещё говорит что полный доступ в интернет, может тоже из-за отладки. Буду экспериментировать.
Немного запарился я с кнопкой "выход из программы". Событие не приходит приходится перезагружать телефон. Что только не делал, отдельная кнопка тоже не работает.
CloseWindow(#Window) End
Отредактировано AZJIO (14.12.2022 22:36:46)
вот так он видит папку пользователя на русском языке.
Короче создал нового пользователя в Windows с латинскими буквами в имени и всё сразу собралось.
Нужно временную папку перенести в другое место.
ПКМ по значку "Компьютер". В меню выбрать "Свойства". Далее в окне выбрать "Дополнительные параметры системы". Там на вкладке "Дополнительно" нажать на кнопку "Переменные среды" и задать новый путь к папкам Temp и Tmp.
Событие не приходит приходится перезагружать телефон.
Телефон принудительно не завершает работу приложения?
Пётр
С завершением проги разобрался, там же в любом приложении нет выхода, есть 3 кнопки управления, если не ставить галку Fullscreen, то прога всё равно будет на весь экран, только вот эти 3 кнопки станут доступными.
на счёт %Temp% да, была идея переместить, но боялся что ещё что-то вылезет, там же в папке пользователя создались папки:
.android
.config
.cordova
.gradle
а также папка SpiderBasic в "AppData", поэтому решал юзера создать, перенёс конфиги браузера и другие, чтобы ничего не настраивать в системе и не прыгать между пользователями.
Телефон принудительно не завершает работу приложения?
да, я не могу нажав кнопку "Exit" выйти из проги. Но благодаря отсутствию Fullscreen я могу кнопками убрать, стрелкой, кружком и квадратом.
Вот архив с исходником и apk, чтобы попробовать.
Lin
Спасибо за прогу, действительно без неё нормально не установишь, ведь с отладчиком это же не выход.
Отредактировано AZJIO (14.12.2022 23:32:07)
Пётр
Проверил вариант с изменением %Temp%, не помогло, APK собирается, но в конце вылетает ошибка - скриншот, даже не стал тестировать APK.
В моей теме "Пятнашки" DiGe адаптировал мой исходник под SpiderBasic (2 года назад). В общем-то вся адаптация заключается что кнопки надо биндить, а не цикловой проход событий. Я решил адаптировать новую версию, так как там вычисление кнопок виртуально, то есть перемешивание происходит без передвижения кнопок (17 раз) и только потом кнопки перемещаются один раз, на телефоне это сильно заметно, особенно на моём устаревшем. В общем я надеялся что удастся заставить изменение размера BindEvent(#PB_Event_SizeWindow, @Events()), то есть не хотел это вырезать, но в итоге по F5 в браузере изменение размера работает, а в APK нет.
В справке очень много функций которые по факту есть, а заставить их работать тоже надо вывернуться. В календаре у меня выбор месяца и года был удобный, но как только я биндю пункт меню, то у меня просто пропадают все дни в окне. Если что я могу дать тестовые исходник, что по ресайзу, что по меню, если есть желание потестировать.
Этот код тоже адаптировал для андроид, но он не умещается у меня по ширине в окно телефона, параметры менять не могу, а в браузере всё работает. И ранее компилятор ругался на русские буквы в коде, а этот без проблем скомпилировал.
Отредактировано AZJIO (15.12.2022 15:27:51)
Я перепаковал справку с чёрным фоном и переименовал имена разделов (Описание, Параметры, Пример, Комментарии, Возвращаемое значение, См. также, Поддерживаемые OS)
Скачать
Полностью англ вариант тут
Разделы System, TouchScreen, Requester интересны к просмотру, там набор функций отличается от остальных PureBasic`ико-подобных.
Отредактировано AZJIO (15.12.2022 19:33:55)
Раз такое дело, нужно по править оглавление, packer пропущен
Т.е. он везде, включая онлайн справку есть а в оглавлении нет.
https://www.spiderbasic.com/documentati … index.html
p.s. И в чём разница между Ru и En?
Отредактировано useful (15.12.2022 19:51:20)
И в чём разница между Ru и En?
Разница только в словах: Описание, Параметры, Пример, Комментарии, Возвращаемое значение, См. также, Поддерживаемые OS, в англоязычной они на английском. Я просто взял скрипт №6 для обработки справки PureBasic и обработал им справку SpiderBasic и там кроме исправления синтаксиса была замена этих слов на русский. Если кому непривычно смотреть на такой компот, то могут взять полностью англ-версию, в которой отработал тот же скрипт, но без переименования.
Я кстати ещё настроил Tools/Help, чтобы на панели задач справка и IDE были разными кнопками. В общем подстраиваю IDE, уже Tools перенёс всё что у меня есть в IDE PureBasic.
Есть предположение что 90% справки взяли из PureBasic как есть. Если написать некий функционал, который сравнит две справки англоязычной и выдаст список одинаковых файлов, то можно было бы эти файлы тупо импортировать из справки PureBasic на русском как есть. Но есть подозрение, что в разделе "Поддерживаемые OS" будет не Windows и Linux, а андроид и iOS из-за чего надо писать слишком сложный анализатор и желание отпадает. Столько копипасты делать, там 900 страниц.
Нет никаких идей, чтобы ещё что-то написать для телефона. Хотел Color_marking_resistor преобразовать, но там переписывать надо, события происходят по координатам, в браузере как я понимаю такое невозможно, где в центре экрана окно. Идея редактора с подсветкой кода, но Scintilla не работает, а нативного RTF как я понимаю нет, так как андроид не виндовое ответвление. Поиск файлов по содержимому - в тотале есть. Будильник по сменам думаю не осилю сейчас, но это надо будет сделать.
Отредактировано AZJIO (15.12.2022 20:41:35)
события происходят по координатам, в браузере как я понимаю такое невозможно
Канвас есть и его события тоже. Значит возможно.
Идея редактора с подсветкой кода, но Scintilla не работает
Есть редактор на канвасе https://www.purebasic.fr/english/viewtopic.php?t=71774
В SpiderBasic не проверял.
Есть редактор на канвасе
Может тогда PBEdit
У одного 6000 строк, у другого 11000.
Значит возможно
Я изначально проверил, не работало.
Отредактировано AZJIO (16.12.2022 10:36:01)
Попробовал сделать редактор хотя бы без подсветки, посмотреть как пойдёт, сразу столкнулся что ANSI с кириллицей 1251 не работает. Хотел с помощью функции UTF8() конвертнуть файл в UTF-8 хотя бы для просмотра, но в справке SpiderBasic её нет. В общем застрял по все параметрам. Если есть желание посмотреть мои потуги, то вот. там функции чтения файлов совсем другие, я хотел без справки написать, а когда сунулся, то всё пришлось переделывать. Сохранение не проверял, так как не понял как сделать выбор на сохранение.
Отредактировано AZJIO (16.12.2022 17:18:30)
Попробовал сделать редактор хотя бы без подсветки, посмотреть как пойдёт, сразу столкнулся что ANSI с кириллицей 1251 не работает. Хотел с помощью функции UTF8() конвертнуть файл в UTF-8 хотя бы для просмотра, но в справке SpiderBasic её нет. В общем застрял по все параметрам. Если есть желание посмотреть мои потуги, то вот. там функции чтения файлов совсем другие, я хотел без справки написать, а когда сунулся, то всё пришлось переделывать. Сохранение не проверял, так как не понял как сделать выбор на сохранение.
Отредактировано AZJIO (Сегодня 21:18:30)
Странное представление. Мозги перекраивать нужно. SB это клиент!!! Файлы и прочее это на серверной стороне.
Да, есть даже sqlite, но во первых хранилище не вечное, живёт до чистки кэша и вообще если по настройкам безопасности активировано.
Локальные файлы для выбрать и отправить и получить и сохранить.
"С помощью FileSystem API и File API веб приложение может создавать, читать, просматривать и записывать файлы находящиеся в области пользовательской «песочницы»."
https://habr.com/ru/post/112286/
p.s. Отправить файл за пределы "песочницы" это
https://www.spiderbasic.com/documentati … tfile.html
https://developer.mozilla.org/ru/docs/W … plications
p.p.s. Ещё и на повсеместную асинхронность мозг перепрошивать нужно при перестройке алгоритмов.
Отредактировано useful (16.12.2022 19:00:34)
useful
то есть если я первый раз запустил программу при отсутствии интернета, то она работать не будет из-за отсутствия кеша? Просто сейчас я запускаю программы без интернета и они работают, а внутри файла APK куча скриптов, как я понимаю необходимый функционал для работы программы, как инклуды.
Одно дело использовать ExportFile(), другое дело подгружать функционал с некого сервера автора. Надеюсь вы не это хотите сказать.
Обновил календарь, разобрался как делать события меню, теперь работает идеально. Хотелось бы использовать DesktopHeight и DesktopWidth, чтобы сделать на весь экран, как я сделал сейчас в "Пятнашки", но тут же проблема, если телефон горизонтально, то окно не умещается и надо придумывать событие поворота, чтобы подстроить окно под текущий размер. А также у меня было что после возвращения с поворота прога уже не центрировалась.
Попробовал функцию ExportFile(), в браузере на компе загрузила файл в папку "Загрузки", это не то что я хотел, а в телефоне ни какой реакции, надо отладчик задействовать. В загрузках файл не нашёл.
Не могу найти что-то вроде контейнера, чтобы если размер проги превышает размер экрана то можно было бы прокручивать поверхность проги, как это происходит в браузере при увеличенном окне. РЕШЕНО, функция ScrollAreaGadget() делает окно прокручиваемым, обновил прогу с графиком разряда конденсатора, которая не умещалась.
Отредактировано AZJIO (16.12.2022 21:14:14)
useful
Попробовал функцию ExportFile(), в браузере на компе загрузила файл в папку "Загрузки", это не то что я хотел, а в телефоне ни какой реакции, надо отладчик задействовать. В загрузках файл не нашёл.
У меня не совсем так. При исп. CreateFile + ExportFile браузерное приложение (которое WEB app) лок. файл успешно сохраняет в "Загрузки" и на компе, и на телефоне, а андроидное - нет. Кстати, CreateFile не вызывает свою каллбечную процедуру ни в каком (WEB, Android) приложении. Мы с Яндекс переводчиком отписали об этом на оф. форум 11.12 , реакции пока нет.
Что будет при OpenFile + ExportFile - на телефоне - щас проверю. Боюсь, что будет то же самое. В отл. режиме на компе работает и даже позволяет сохранять не в тот файл, который был Open.
П.С.1. WEB вариант на телефоне работает. OpenFile предложила выбор - Галереея или "прикрепить файл". В обоих случаях предлагается выбрать файл-менеджер. Выбрал, залез на Я-диск, выбрал файл с содержимым. Записал 3 строки. Экспорт без разговоров произошел в Загрузки. Новые записи накрыли начало прежнего содержимого, остальное старье сохранилось. Наверно, если промотать исх. файл до коца, а потом писать, то было бы дописывание в хвост.
П.С.2. Андроидная программа открыла окно с кнопкой и дебужной форточкой и всё. Жму на кнопку, она моргает и ничего не происходит, в т.ч. и дебужной выдачи. Затык уже на OpenFileRequester. Т.е. до OpenFile программа даже не доходит. Заррраза!
Отредактировано ЗАК (17.12.2022 00:12:32)
У меня не совсем так
всмысле не совсем так? Как раз таки так. Я пишу в браузере работает в "Загрузки" и у тебя так, я пишу в андроиде не работает и у тебя так. У меня то только андроидный телефон, а js в браузере я не использую. У нас одинаковое поведение, у меня тоже калбэк не работает поэтому я перенёс функции назад, не так как в OpenFile. Отличие OpenFile что будет писать в конец и надо указатель ставить в начало, а если данные меньше чем бывший файл, но надо ещё обрезать TruncateFile(), которой нет в SpiderBasic, а значит это не то.
Я просто в каждые вызовы ставлю "Debug 1", потом "Debug 2" и смотрю что у меня в отладчике бегут цифры 1, 2, 3, 4 и тд, если где-то прервалось, то смотрю в чём проблема.
AZJIO, ты написал "в телефоне не работает". Я же написал что у меня в телефоне работает, но только WEB app. Вот в этом смысле и "не совсем так". Извини, если я не понял, что ты имел в виду.
useful, спасибо. Однако, по ссылке речь вроде бы о браузерных приложениях. А они и средствами языка худо-бедно работают с файлами. А что с андроидными приложеньями делать?
... А что с андроидными приложеньями делать?
Так SB никаких андроидных приложений не генерирует.
Он генерирует упакованные веб приложения с помощью cordova
https://habr.com/ru/post/535732/
Это как приложения на electron считать виндовыми
https://habr.com/ru/company/ruvds/blog/436466/
Отредактировано useful (17.12.2022 19:27:38)
Не ожидал что версия на Linux скажет, что APK можно создать только на Windows. iOS только на MacOS.
useful
Он, как и я говорим понятную мысль, несмотря на то что APK является микробраузером с работающим js-скриптом, на нём всё равно не работает функция ExportFile(), в то время как если она работает в полноценном браузере на телефоне или компе, то она работает. Мы же не пишем приложение в виде html-страницы, мы по итогу делаем полноценный APK, который нормально устанавливается и виден в телефоне как самостоятельная программа, даже не смотря на то что это микробраузер со работающим скриптом. Нам надо чтобы этот APK установленный сохранял файл. Кстати браузер тоже умеет спросить куда сохранять скаченный файл, предлагая путь по умолчанию (открытый файл), поэтому если бы это работало именно таким образом, то у нас бы получился нормальный работающий вариант.
https://forums.spiderbasic.com/viewtopic.php?t=2285
Как и ожидалось вероятно нужно детально разбираться с плагинами cordova и разрешениями.
Но у меня все андроиды древние, не вижу смысла вникать, пока не обновлюсь.
Установка и настройка SpiderBasic | SpiderBasic | 22.06.2024 |
Справка SpiderBasic | SpiderBasic | 20.01.2023 |
Не работает событие #PB_EventType_Resize в гаджетах-контейнерах | SpiderBasic | 10.03.2024 |
Программа как CHM-справочник | SpiderBasic | 29.10.2024 |
Repka Pi | Repka Pi | 16.06.2023 |
Вы здесь » PureBasic - форум » SpiderBasic » SpiderBasic