Сначала посмотрите на проблему
Как показано на рисунке, при нажатии на две кнопки курса и торгового центра должны быть загружены две разные веб-страницы, но фактический эффект не совпадает. Фрагмент курса, добавленный первым, будет заблокирован. Добавлен фрагмент торгового центра, вставьте код переключения фрагмента ниже

How to embed Crosswalk’s WebView (XWalkView) in Android Studio
7. In Activity file, use crosswalk webview(XWalkView) to load web page:
XWalkView mXWalkView = (XWalkView) findViewById(R.id.webview);
mXWalkView.load(«http://zhuatang.com», null);
Note:testing code has already uploaded to github, clone or browse it from https://github.com/zhsoft88/TestCrosswalkEmbed2.
Enjoy!
Начало работы с Crosswalk
- Информация CSDN: введение Crosswalk
- Официальный адрес пешеходного перехода
Вы можете увидеть введение Crosswalk в ссылке выше. Я не буду писать описание Crosswalk.Запишите мой опыт:
- Вам не нужно ничего делать для инкапсуляции, просто используйте это как WebView.При использовании библиотеки android-chromium вы не только должны самостоятельно инкапсулировать API для простоты использования, но также беспокоиться об инициализации Chromium и даже должны написать кучу вещей о Chromium в файле манифеста, чтобы помочь Chromium создать отдельный процесс (Crosswalk Будут созданы только нити Chromium, отдельные процессы не требуются).
- Пешеходный переход поддерживается организацией и намного сильнее индивидуального обслуживания.
- Будьте в курсе последних версий Chromium, JS и т. Д. Не нужно беспокоиться о функциях, которые нельзя использовать. А в процессе непрерывного обновления предыдущие ошибки обязательно будут исправлены, и стабильность не является проблемой.
Последняя стабильная версия Crosswalk скомпилирована на основе Chromium38.Примечание. Эту библиотеку также можно использовать с Cordova (PhoneGap).Хорошо, чувствую себя законченным, перейдите к учебнику.
Я создаю новое приложение из webview для XWalkView для рендеринга демонстрационного трекера three.js stl, который не поддерживается веб-просмотром независимо от WebGlRenderer или CanvasRenderer.
Ниже приведен процесс использования модуля кроссворда:

шаг 2 выберите модуль и переименуйте, если вам нужно

шаг 3 выберите все опции

здесь студия Android может попросить вас обновить, обновить ее

шаг 4 обрабатывает зависимость модуля



После этого автоматически запускается Gradle Build Running
Здесь мы закончили пешеходный переход в порту.
шаг 5 использует XWalkView
добавьте эти привилегии в AndroidManifest.xml
добавить аппаратное ускорение в приложение node AndroidManifest.xml
добавить это в файл макета
добавить это в действие
XWalkView mXWalkView = (XWalkView) findViewById(R.id.xWalkView);
mXWalkView.load(«http://192.168.1.42/test», null);
Здесь мы закончили
в результате я использую webview и XWalkView для рендеринга загрузчика tr.js STL.
веб-просмотр не поддерживается

XWalkView поддерживает хорошо

Ха-ха, это работает.
здесь находится исходный код.
Загрузите надлежащий пакет веб-просмотра Crosswalk Android и распакуйте его из https://crosswalk-project.org/documentation/downloads.html
Скопируйте xwalk_core_library_java.jar из crosswalk libs в приложение/libs/в проект студии Android и напишите клик по файлу, выберите «Добавить как библиотеку»
Скопируйте другое содержимое в папку crosswalk для приложения /src/main/jniLibs/
Создайте резервную копию ресурса Android res2 и скопируйте файлы в crosswalk res dir в этот каталог.
Добавьте это в AndroidMenifest.xml
добавить это в макет
добавьте это в Activity
XWalkView mXWalkView = (XWalkView) findViewById(R.id.webview);
mXWalkView.load(«http://xxxxxx.com», null);
если вы хотите отладить romote, добавьте это.
To run on your device, one of your applications needs to install the Crosswalk Project runtime APK. This component does not require any special permissions to install, but the application that brought you here does.
This is not an application and won’t do anything if installed on its own. There will be no icon on the home screen. This is only needed to run certain applications that use the Crosswalk runtime. Don’t install this if you weren’t directed here by another program.
We provide core web platform functionality to hybrid and web applications including, but not limited to, HTML5, partial JavaScript 6 support, CSS3 and much more.
Developers can utilize Crosswalk as a runtime for their web applications and as an alternative to WebView for hybrid apps and take advantage of the latest web innovations despite the platform’s standard web support. It expands the market reach of many new applications that require modern features.
An app developer can use the Crosswalk Project to
Create modern web applications with good performance and features
- Utilize all the web-facing features available in modern browsers, including HTML5, partial JavaScript 6 support, CSS3 and many more.
- You can access the latest recommended and emerging web standards such as SIMD.js and the Presentation API*.
- You can add custom extensions to an application to leverage platform features not exposed by Crosswalk or the web platform.
- As a result of standardization, some APIs are considered experimental, and might change between versions.
Instead of relying on the Crosswalk Project runtime services, apps can be bundled with the Crosswalk runtime instead. You can avoid web runtime changes below you by distributing your applications with a versioned Crosswalk runtime.
How to Download and Install Xwalk Core Library APK?
Xwalk Core Library APK is easy to download on your phone. We have created a simple guide that can assist you in downloading it for free.
Step 1 – Download Button
First of all, you have to click on the download button provided by us. Now you have come to the download page, you have to wait a few seconds, then click on download, the app will start downloading automatically.
Step 2 – File Manager
Click on the download button to begin downloading. Go to your file manager and search for the apk file.
Enable Unknown Source: Third-party applications need unknown source settings to be enabled before they can be installed. Any third-party application on Android cannot be installed without enabling the unknown source settings.
Step 3 – Install the Application
Now tap on that APK file of Xwalk Core Library APK you have downloaded. Once you do that you will have your application installed.
Step 4 – Let’s get started!
You will now have a Xwalk Core Library APK icon on your phone. Simply tap on it to begin using it.
Я искал код XWalkView.java, поэтому могу сделать что-то полезное, но он еще не опубликован. Но есть, по крайней мере, хорошее решение, которое может работать:
Создайте в первый раз экземпляр XWalkView внутри действия. затем найдите способ сохранить его в службе и повторно использовать тот же самый экземпляр всякий раз, когда ваша активность подключается к службе (таким образом, ваши html и js не перезагружаются;))
После поиска в Google я понял, что необходим экземпляр XWalkView и активность, чтобы он регистрировал некоторых слушателей жизненного цикла. поэтому, когда действие уничтожается, например, вызывается метод XwalkView.onDestroy(поэтому мне пришлось отключить его в моем случае, чтобы сохранить тот же экземпляр и повторно использовать его)
Вот мой простой пример:
MainActivity.Java
Я надеюсь, что это сработает для вас.
Основное использование
Элемент управления, используемый для замены WebView в Crosswalk, называется XWalkView.
Запись файла макета
То же, что и другие пользовательские элементы управления.
Используется в коде
В отличие от других элементов управления Android, этот класс должен прослушивать системные события. Например: жизненный цикл, намерение, результат деятельности.Веб-движок, встроенный в элемент управления, должен получать и обрабатывать эту информацию. И когда XWalkView больше не требуется использовать, в методе onDestroy XWalkView должен явно вызывать метод destroy, в противном случае он легко вызовет утечки памяти веб-движка.Оригинальный текст выглядит следующим образом:
Unlike other Android views, this class has to listen to system events like application life cycle, intents, and activity result. The web engine inside this view need to get and handle them. And the onDestroy() method of XWalkView MUST be called explicitly when an XWalkView won’t be used anymore, otherwise it will cause the memory leak from the native side of the web engine. It’s similar to the destroy() method of Android WebView.
Этот текст взят из официального документа API XWalkView. Странно то, что официальная парадигма не заботится об этих вещах, она используется прямо как WebView, не говоря уже о методе уничтожения.Учитывая, что перед использованием библиотеки android-chromium ее также нужно явно вызвать. Это добавлено здесь, чтобы избежать утечек памяти.
Куда ушел loadUrl?
Приведенный выше код на самом деле испорчен, просто используйте метод загрузки.
mXWalkView.(, );// this loads a file from the assets/ directorymXWalkView.(, );
public void load (String url, String content)Load a web page/app from a given base URL or a content. If url is null or empty and content is null or empty, then this function will do nothing. If content is not null, load the web page/app from the content. If content is not null and the url is not set, return «about:blank» ifi calling getUrl(). If content is null, try to load the content from the url. It supports URL schemes like ‘http:’, ‘https:’ and ‘file:’. It can also load files from Android assets, e.g. ‘file:///android_asset/’.Parametersurl the url for web page/app.content the content for the web page/app. Could be empty.
WebViewClient?
Соответствующий WebViewClient WebView, в XWalkView есть XWalkResourceClient.
Вызов JavaScript
Это может быть выполнено только в том случае, если для параметра настройки JavaScriptEnabled установлено значение true, как в WebView.Crosswalk может выполнить JS напрямую.
Конечно, согласно методу, представленному Kitkat, также можно использовать методvaluJavascript. (Рекомендуется богами)
JavaScript обратный вызов Java
- XWalkView устанавливает JavaScript и привязывает объектыmXWalkView.( (), );
- Вызовите html, чтобы выполнить JavaScript, или напрямую выполните Javascript, чтобы вызвать Java.mXWalkView.(, );index.html исходный код:Say Hello () (.())
The previous article explained TencentX5 Kernel integration, this one is to explainCrosswalk IntegrationCrosswalk Also adoptedChromenium Kernel, is an open sourceweb Engine, developers can directly putCrosswalk Embedded in the application, of course, also supports sharing mode (there is no corresponding in the system)Crosswalk The library will prompt for download). JustCrosswalk Maintenance has been stopped.
Crosswalk official website
Integrated
Want to useCrossWalk There are three ways:
2.download Extract the zip package and use the development toolsImport ModuleImport, as alibraryrely.
recommended
stable(stable version)! The other difference is
beta(Beta),
canary(Canary Edition). Download the latest version
zippackage:
23.53.589.4
3. Download aar downloadaarImport project after packagelibDirectory, then atgradleAdd in
compile(name: ‘crosswalk-23.53.589.4’, ext: ‘aar’)
Android:hardwareAccelerated=»true» //Enable hardware acceleration under the application node
2. Add in the layout
3. NewActivity InheritanceXWalkActivity,onXWalkReady() Initialization in the method
XWalkUIClient Corresponding systemwebview middle WebChromeClient
XWalkResourceClient Corresponding systemwebview of WebViewClient
Prompt
currently using Crosswalk The process has encountered a few problems, mention it here, I hope to have a little help.
- lang.RuntimeException: Crosswalk’s APIs are not ready yetException: Please make related settings and load page in onready
- Use the firstmaven Integration method may report resource exceptions
in yourbuild.gradle Add in:
3.Crosswalk LoadSSL When the website with the certificate has a problem, it will reportRquest was denied for security
Callback after adding the above codeonReceivedLoadErrorAnd reportnet:: ERR_SECURITY_RESPONSE. This problem has been tossing for a long time, inXwalkview forumFound inCrosswalk Will prevent connections from being untrustedSSL。
Finally found in the source codeSsLUtil.java Will prevent loading.
after editedResourceCertificate security issues have been ignored «Do not recommend ignoring certificate security issues, I am testing the environment»
Crosswalk Api documentation
At last
About TencentX5 Kernel integration please jump:
Android integrated three-party browser X5 kernel
Зачем отказываться от WebView
Android WebView хорош для обычного просмотра и форматированного текстаредактор(Выполнить JS:document.body.contentEditable=true;), Часто встречаются различные экзотические ошибки, и это трудно исправить.Хотя Google продолжал исправлять ошибки в итерациях версии, по-прежнему было невозможно использовать ее для редактирования расширенного текста.
Frequently Asked Questions
Is Xwalk Core Library APK Free?
Can I download Xwalk Core Library APK legally?
Yes, it is a safe and legal application, even though it is free to use. It has plenty of excellent features.
Why does Xwalk Core Library APK not work?
If your app is outdated or not updated to a new version, it may not work properly. So you can update the app today to ensure it works properly and smoothly.
How Do I Update Xwalk Core Library APK?
Xwalk Core Library APK is from a third-party developer, so an automatic update won’t be available. You will need to manually update the app by removing the old version and installing the new version.
Is my Android device required to have root access in order to install Xwalk Core Library APK?
No, rooting is not required to install Xwalk Core Library APK. This app doesn’t require special permissions. So, you can install and use the app without rooting your device. However, if your device already has root access then you can also use the app without any difficulty. It provides the same features and interface to both rooted and non-configured devices.
The Advantages and Disadvantages of directly downloading the Xwalk Core Library APK?
- The application is safe and secure.
- You can easily install and use the app.
- Third-party ads are not available.
- It is free to download and use.
- There is no need to sign up for the app
Cons
- They will not automatically update.
- Google does not always verify them.
- There is little innovation in the design
- It is not suitable for slow internet
Conclusion
We would like to point out that we will only be providing the unique and free APK model of Xwalk Core Library APK without any modifications.
RetiT file, and other custom controls.
Crosswalk завершен.С Chrome и JavaScript, ваш редактор может быть реализован, и он больше не многословен здесь.
Перепечатка, пожалуйста, укажите адрес этой статьи:Откажитесь от WebView, используйте Crosswalk в качестве текстового редактора
Расширенное использование
Начиная с Kitkat, Android обеспечивает совместную отладку с Chrome. Вы можете легко отлаживать код в WebView в Chrome.Crosswalk использует ядро Chromium, конечно, также имеет эту функцию.Инструкция для начала отладки выглядит следующим образом:
// turn on debugging XWalkPreferences.(XWalkPreferences., );
Для Crosswalk этот параметр является глобальным.
Используйте анимацию или установите, чтобы скрыть видимое внимание
XWalkView не может использовать анимацию по умолчанию, даже не setVisibility.
XWalkView represents an Android view for web apps/pages. Thus most of attributes for Android view are valid for this class. Since it internally uses android.view.SurfaceView for rendering web pages by default, it can’t be resized, rotated, transformed and animated due to the limitations of SurfaceView. Alternatively, if the preference key ANIMATABLE_XWALK_VIEW is set to True, XWalkView can be transformed and animated because TextureView is intentionally used to render web pages for animation support. Besides, XWalkView won’t be rendered if it’s invisible.
Включить режим анимации:
Поскольку настройки также глобальны, как отладка, не забудьте закрыть их в onDestroy.
Пауза JS таймер
htmlA script on this page starts this clock:
XWalkView соответствующий метод:
Это также упоминается в примере кода для прослушивания системных событий для предотвращения утечек памяти:
История
// The web page below will display a video.// When home button is pressed, the activity will be in background, and the video will be paused.mXWalkView.(, );
LoadAppFromManifest
// url
mXWalkView.load(«http://crosswalk-project.org/», null);
// this loads a file from the assets/ directory
mXWalkView.load(«file:///android_asset/index.html», null);
Is there a webviewclient in WebView, what about xwalkview?
- Свяжите эту библиотеку.
- Запишите следующие разрешения в файле манифестаПримечание. В процессе использования Logcat вы можете увидеть, что для отчета требуется разрешение Bluetooth, вы можете оставить его в покое и использовать его как обычно, без добавления разрешения Bluetooth.Кроме того, для использования XWalkView необходимо включить аппаратное ускорение.XWalkView needs hardware acceleration to render web pages. As a result, the AndroidManifest.xml of the caller’s app must be appended with the attribute «android:hardwareAccelerated» and its value must be set as «true».android:hardwareAccelerated : The default value is «true» if you’ve set either minSdkVersion or targetSdkVersion to «14» or higher; otherwise, it’s «false».Просто заявите в манифесте файл приложения.
Киткат меняет
Видно, что в Lollipop ядро Chromium можно обновлять через GooglePlay.
Но проблема приближается:
- Легко ли обновлять в Китае?
- Если он не обновляется автоматически, будут ли пользователи обновлять его вручную? Конечно, GooglePlay автоматически обновляется, но отечественные мобильные телефоны не имеют собственного рынка производителей?
- Как насчет предыдущих версий Lollipop? Lollipop в настоящее время имеет только несколько пользователей, которые могут быть обновлены.
Call JavaScript
Unlike WebView, get setting settings setJavascripTENABLED is TRUE to execute. Crosswalk can perform JS directly. Of course, the EvaluateJavaScript method is also possible in the way in which Kitkat is introduced. (The gods recommended)
Ok, I will introduce the basic use of XwalkView so far. Hope it helps you.
Исследуйте новые решения для редактирования текста
Очевидно, что даже с решением Lollipop остается много проблем. Нам все еще нужно альтернативное решение, чтобы гарантировать стабильную работу на всех телефонах Android.Это решение заключается в интеграции хрома в приложение.Поскольку компилировать Chromium сложнее самостоятельно, я обратился к поиску скомпилированной библиотеки Chromium для использования.Следует отметить, что ядро Chromium можно использовать только на Android 4.0 и выше, а все библиотеки Chromium, упомянутые позже, можно использовать только на платформах выше 4.0.
План перехода
При первоначальном поиске альтернатив, это должно быть около октября 2013 года, и было найдено две библиотеки Chromium:
- chromeviewЭта библиотека хорошо инкапсулирована, но есть фатальная ошибка, которую нельзя прокрутить.README заявляет:Attempting to scroll the view (by swiping a finger across the screen) does not update the displayed image.However, internally, the view is scrolled.This can be seen by displaying a stack of buttons and trying to click on the topmost one.This issue makes ChromeView mostly unusable in production.Примечание: Crosswalk рекомендуется в последнем утверждении библиотеки README, автор все еще очень внимателен.
- android-chromiumБиблиотека в целом стабильна и выше нет ошибок. Я использовал его в качестве редактора почти год без проблем.Однако в июне и июле этого года неожиданно обнаружилось, что новые планшеты Samsung (оснащенные Kitkat) появились в виде цветочных экранов, а горизонтальные полосы разных цветов появились на экране и не могли быть отредактированы. Другие телефоны, оснащенные Kitkat, не нашли никаких проблем в то время.Давайте поговорим об этой библиотеке здесь. Так как автор видел Kitkat, использующий Chromium, автор заявил, что он не будет обновлен, фактически он не обновлялся почти год назад.Эта библиотека громоздка в использовании, вам нужно ее инкапсулировать, и даже onPageFinished нужно делать самостоятельно.
Можно видеть, что вышеупомянутые альтернативы фактически недоступны к июню и июлю этого года.И код, который не поддерживается организацией, обычно имеет ненадежное значение.Поэтому мне пришлось продолжать искать альтернативы. Я наконец-то увидел надежду на Google I / O-Crosswalk
Download Xwalk Core Library APK
Первое, что приходит на ум, это посмотреть на исходный код XWalkView.
Мы увидели, что в XWalkView был добавлен вид поверхности. Видя здесь, группа экстрасенсорных лошадей и лошадей переворачивается. Здесь мы рассматриваем вид поверхности. Он имеет независимую поверхность рисования, то есть не разделяет ту же поверхность рисования со своим главным окном. Чтобы описать Z-позицию Layer или LayerBuffer SurfaceView, меньше, чем Z-позиция Layer, используемая для его окна Activity узла, но первая будет копать «дыру» в последнем, так что его пользовательский интерфейс может быть видимым для пользователя , Фактически, «дыра», вырытая SurfaceView в его окне Activity узла, является не чем иным, как установлением прозрачной области в окне Activity узла. Здесь мы снова анализируем вышеупомянутые проблемы: когда фрагмент скрыт, поверхность рисования, где расположен обычный вид, скрыта, но поверхность рисования, где вид поверхности не скрыт. В результате вид поверхности предыдущего фрагмента не скрыт, что вызывает вышеописанное. проблема. Затем взберитесь на яму и узнайте принцип, вы должны сначала найти вид поверхности в XWalkView. Я думал, что покаxWalkView.getChildAt(0)Вот и все. Кто знает, когда операция сразу же потерпела крах, очевидно,this.addView(surfaceView)Вы не можете найти его слой за слоем, мне потребовалось много времени, чтобы найти его
val b = xWalkView.getChildAt(0) as XWalkViewBridge
surfaceView = (b.getChildAt(0) as ViewGroup).getChildAt(0) as SurfaceView
wc, это полностью завернуто в три слоя.
