Android-система Webview установлена, но не используется приложениями

16

Я загрузил и установил последнюю версию системы Android WebView из магазина приложений на своем планшете Android (работает с версией 5.0.2).

Но приложения все еще продолжают использовать старую версию webview (39.0.0.0).

Как я могу заставить их переключаться?

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

Клементина
источник
2
Из любопытства, как узнать, какую версию Webview использует приложение?
DukeSilversJazz
1
Я тестировал несколько приложений, таких как Droidscript и WebView Browser, и посетил whatsmyuseragent
Clémentine
Я прочитал источник Lollipop, и это не должно происходить. Следует использовать последнюю версию, если производитель не заменил класс WebViewFactory своим собственным. Какое точное устройство / модель и версия от производителя вы используете?
Муфаса
Привет, Мусафа, почему ты удалил свой ответ?
Клементина
Я использую недорогие планшеты, и я попробовал несколько брендов (digiflip от flipkart, time2), я собираюсь примерить lenovo TAB 2 A7 в ближайшие дни
Clémentine

Ответы:

19

Вы не можете изменить это без рута.

Каркас системы жестко запрограммирован для использования определенного пакета для приложений, которые запрашивают компонент WebView. По умолчанию (в AOSP) используется значение com.android.webview, которое является версией, скомпилированной в процессе сборки AOSP. На устройствах производителей, которые модифицируют этот компонент, имя пакета может отличаться. Независимо от того, чтобы заменить WebView, который поставляется с вашим устройством, вы должны изменить это значение, чтобы вместо него com.google.android.webview.

«Ручной» способ сделать это - извлечь файл framework-res.apk с вашего устройства, декомпилировать его и изменить значение config_webViewPackageNameпеременной ресурса. Это должно быть расположено в/res/values/strings.xml пределах .apk. После того, как вы это сделаете, вам нужно будет заново упаковать все и вставить новый .apk на свое устройство, заменив старый.

Альтернативный метод, который вы можете попробовать - установить Xposed Framework, а затем использовать модуль WebViewGoogle . Если вы используете пользовательское ПЗУ, вы также сможете найти пакет, который навсегда изменит необходимые компоненты платформы (или он может быть построен для использования Google WebView по умолчанию).

Моя гипотеза состояла бы в том, что это ограничение существует отчасти потому, что система полагается на реализацию WebView, существующую в некоторой форме, поэтому, если она может быть изменена пользователем, она может нарушить работу системы странным образом. Также могут быть последствия для безопасности, позволяющие приложениям переопределять веб-представление системы, например, злоумышленник, пытающийся предоставить вредоносное приложение без ведома пользователя.

В качестве дальнейшего объяснения: причина, по которой System WebView доступен в Play Store для начала, заключается в том, что устройства Nexus (и, возможно, другие) поставляются с предустановленным и настроенным для его использования. По сути, это системный WebView для этих устройств. Таким образом, Google может предоставлять обновления WebView для этих устройств через Play Store, так что полные системные OTA не нужны просто для обновления браузера / WebView. Есть и другие компоненты, которые Google перенес в Play Store, обновляя аналогичным образом, по сути, это происходит быстрее. Телефон и Контакты были двумя из более недавних, со связанной статьей, предоставляющей некоторые дополнительные детали относительно того, почему Google принял этот подход.

eldarerathis
источник
1
Спасибо за это объяснение ... но какая польза от этого приложения для просмотра в системе Android?
Клементина
1
@ Устройства Clémentine Nexus (возможно, другие) поставляются с предустановленным и настроенным для его использования. По сути, это системный WebView для этих устройств. Таким образом, Google может предоставлять обновления WebView для этих устройств через Play Store, так что полные системные OTA не нужны просто для обновления браузера / WebView. Есть и другие компоненты, которые Google перенес в Play Store, обновляя аналогичным образом, по сути, это происходит быстрее.
eldarerathis
1
Почему все планшеты, на которых установлена ​​программа Lollipop или более новая ОС, не используют ее в качестве системы WebView по умолчанию, звучит как пустая трата!
Клементина
1
@ Clémentine Контроль Google над сторонними производителями несколько ограничен. Они, вероятно, могли бы использовать Google ViewS с закрытым исходным кодом, как это делают устройства Nexus, но они могут отказаться по какой-либо причине. Я не уверен в деталях, касающихся того, как Google лицензирует свои приложения с закрытым исходным кодом для OEM-производителей, но эти условия (какими бы они ни были) могут быть фактором в решении производителя.
eldarerathis
Спасибо за всю эту информацию. Пролить свет на многие вопросы, которые у меня были в глубине души. Будет искать планшет, на котором он уже установлен.
Клементина