Причина, по которой обратный вызов присутствует, заключается в том, что его нельзя сделать мгновенно из приложения для Android.
Основная причина этого заключается в том, что Android использует WebView
для запуска JavaScript.Современный Android WebView
- это всего лишь экземпляр Google Chrome, завернутый в вид Android.Как вы понимаете, этот экземпляр нужно запускать в отдельном процессе, как он это делает.Если кто-то захочет копать глубже, он обнаружит, что связь между приложением Android и WebView
осуществляется через службу AIDL, поскольку все межпроцессные взаимодействия должны выполняться в Android.
Принимая во внимание время, необходимое для написаниявызов AIDL в стеке выделяет память и формирует сообщение (основной метод связи AIDL), отправляет его, разворачивает в Chrome, анализирует, выполняет javascript и выполняет все эти операции еще раз, чтобы ответить - 10 мс - 50 мс - очень низкая задержка.
Возможно, у ArCore есть собственный процессор js для быстрой обработки файлов js.Или Google Chrome имеет свой собственный метод связи с ArCore (или внутренним экземпляром).Я не знаю, но это продукты, разработанные Google, я думаю, что они знают свои ярлыки.
Пользовательский WebView
может работать - единственное, что в основном это будет новая версия браузера, которую вы будете использовать.вам нужно поддерживать ваш js отдельно от всех других браузеров по целому ряду возможных причин.
Надеюсь, это вам как-то поможет.