Отключить кнопки масштабирования в inappbrowser Phonegap

После часов поиска и пробования разных вещей я близок к тому, чтобы сдаться. Я хочу открыть внешний URL-адрес в inAppBrowser, который теперь включен в сборку Phonegap. Я удаляю адресную строку с помощью location=no (также пробовал toolbar=no, но это ничего не дало), однако масштабирование (кнопки + и -), которое появляется при прокрутке страницы, не исчезает. Я не могу найти способ отключить его, но, может быть, я что-то упустил? Я бы просто использовал масштабирование, поэтому я не вижу причин иметь эти уродливые кнопки вверху страницы (которые разработаны специально для этого приложения).

Так есть ли способ отключить встроенные кнопки масштабирования?

Я тестирую на Android, но планирую работать и с версией для iPhone.


person Dmitriy Gamolin    schedule 09.05.2014    source источник


Ответы (7)


У меня была та же проблема, но с использованием Cordova вместо Phonegap Build. Уловка, которая помогла мне, заключалась в том, чтобы изменить строку 575 InAppBrowser.java на settings.setBuiltInZoomControls(false);.

Это, конечно, не будет работать для iOS, но, насколько мне известно, Phonegap/Cordova не предлагает другой сборки.

person user3677008    schedule 26.05.2014
comment
Cordova 5.1.1: строка 619 из {project root}/platforms/android/src/org/apache/cordova/inappbrowser/InAppBrowser.java Обратите внимание, что это не только скрывает архаичные кнопки масштабирования, но также предотвращает масштабирование с помощью щипков. - person Stan Kurdziel; 11.07.2015

попробуй zoom=no

вы можете найти подробную информацию о документации плагина Cordova inappbrowser: https://github.com/apache/cordova-plugin-inappbrowser

person Görkem Öğüt    schedule 08.04.2015
comment
Это не работало в Cordova 5.1.1 — похоже, возможность указать включение управления масштабированием была удалена: github.com/apache/cordova-plugin-inappbrowser/pull/104 - person Stan Kurdziel; 11.07.2015
comment
Я обнаружил, что параметр zoom=no тоже не работает, пока я не удостоверился, что моя страница (та, которая содержится в inappbrowser) имеет это в своем мета-теге окна просмотра: user-scalable=no - person Sherri; 30.09.2015
comment
Работает и для Android, по крайней мере, в версии 3.0.0+. - person jlapoutre; 26.02.2019

<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />

Используйте этот метатег на внешней странице веб-просмотра. Спасибо...

person mdb    schedule 31.07.2017
comment
Почему это работает? Знать, почему это работает, важнее, чем просто код. - person Flummox - don't be evil SE; 31.07.2017

Используя плагин InAppBrowser, я столкнулся с той же проблемой.

Мне удалось скрыть «уродливые» кнопки +/-, но сохранить поведение масштабирования (с помощью жеста сжатия), изменив файл InAppBrowser.java и используя следующие команды:

WebSettings settings = inAppWebView.getSettings();
settings.setBuiltInZoomControls(true); // enable built-in zoom mechanisms
settings.setDisplayZoomControls(false); // disable WebView's zoom controls display

Нашел здесь: https://developer.android.com/reference/android/webkit/WebSettings.html#setDisplayZoomControls(boolean)

person A. Yosupov    schedule 05.03.2017

Это только удаляет кнопку масштабирования и только для IOS:

Откройте файл в своем проекте:

[YourAppName]/platforms/ios/[YourAppName]/Plugins/org.apache.cordova.inappbrowser/src/ios/CDVInAppBrowser.m

Найдите и измените это:

[self.toolbar setItems:@[self.closeButton, flexibleSpaceButton, self.backButton, fixedSpaceButton, self.forwardButton]];

к этому:

[self.toolbar setItems:@[self.closeButton, flexibleSpaceButton]];

А затем соберите проект с помощью командной строки.

person Elemento0    schedule 27.01.2015

попробуй так: var authWindow = window.open(authUrl, '_blank', 'location=no,zoom=no,toolbar=no');

person MD.Riyaz    schedule 04.04.2017
comment
Хотя этот код может ответить на вопрос, предоставляя дополнительный контекст относительно как и/или почему это решает проблему, повысит ценность ответа в долгосрочной перспективе. Помните, что вы отвечаете на вопрос читателей в будущем, а не только того, кто задает сейчас! Пожалуйста, отредактируйте свой ответ, чтобы добавить объяснение и указать, какие ограничения и предположения применяются. Также не помешает упомянуть, почему этот ответ более уместен, чем другие. - person Dev-iL; 04.04.2017

Перейдите в корень структуры папок}\platforms\android\app\src\main\java\org\apache\cordova\inappbrowser\inappbrowser.java

затем найдите zoom, везде меняйте zoom=false, у меня сработало.

Кордова 10.0.0, Android Studio 4, 2021 г.

person BenjaBoy    schedule 23.02.2021