Родной плагин Ionic - проверка платформы - для предотвращения взлома кода в браузере при запуске через «ionic serve» - PullRequest
0 голосов
/ 29 января 2019

Я новичок в ионной разработке и использую приведенный ниже код (при нажатии кнопки), чтобы гарантировать, что собственный код вызова плагина не сработает / не возникнет ошибка при выполнении в веб-браузере с использованием 'ionic serve':

if (!this.platform.is('cordova')) {
    console.warn('Push notifications not initialized. Cordova is not available - Run in physical device');
    return;
  }
--other wise run the native code..

Мой вопрос: когда он работает на реальном устройстве, что именно выводится при проверке if?Для Android и iOS это платформа Cordova?Должен ли я также писать, если также проверьте для this.platform.is ('Android') и this.platform.is ('iOS')?

1 Ответ

0 голосов
/ 29 января 2019

В зависимости от платформы, на которой работает пользователь, is(platformName) вернет true или false.Обратите внимание, что одно и то же приложение может возвращать true для более чем одного имени платформы.Например, приложение, запущенное с iPad, вернет true для названий платформ: mobile, ios, ipad и tablet.Кроме того, если бы приложение работало с Cordova, тогда cordova было бы верным, а если бы оно работало из веб-браузера на iPad, то mobileweb было бы true.

.ответьте на ваши вопросы

, когда это выполняется на реальном устройстве, что именно является результатом проверки if?

Если вы приложение (android, ios, windows) создается с использованием каркаса cordova и устанавливается на соответствующие устройства, тогда this.platform.is ('cordova') вернет true.

С другой стороны, если вы размещаете приложениена любом веб-сервере и попробуйте получить к нему доступ через мобильный браузер, затем this.platform.is ('cordova') вернет false.

Для Android и iOS используется платформа cordova ?

Да, только если вы создали собственное приложение (.apk, .ipa) из cordova framework.

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

Должен ли я также писать, если проверьте также для this.platform.is ('Android') и this.platform.is ('iOS')?

Зависит от ситуации. В большинстве случаев, если вы сгенерировали нативное приложение (.apk, .ipa) из фреймворка cordova и у вас есть некоторый общий код для обеих платформ, тогда this.platform.is ('cordova ') достаточно.

Вы можете проверить следующую таблицу для справки

 | Platform Name   | Description                        |
 * |-----------------|------------------------------------|
 * | android         | on a device running Android.       |
 * | cordova         | on a device running Cordova.       |
 * | core            | on a desktop device.               |
 * | ios             | on a device running iOS.           |
 * | ipad            | on an iPad device.                 |
 * | iphone          | on an iPhone device.               |
 * | mobile          | on a mobile device.                |
 * | mobileweb       | in a browser on a mobile device.   |
 * | phablet         | on a phablet device.               |
 * | tablet          | on a tablet device.                |
 * | windows         | on a device running Windows.       |

Ссылка : https://ionicframework.com/docs/v3/api/platform/Platform/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...