Что лучший способ состоит в том, чтобы обработать различия в среде/портрете в IB?

Лучше всего использовать API SafetyNet. Хотя он не может сказать root конкретно, он даст вам знать, что устройство ненадежно. Код также довольно прост.

val nonce = ByteArray(20)
SecureRandom().nextBytes(nonce)
SafetyNet.getClient(context).attest(nonce, API_KEY)
        .addOnSuccessListener(this) { response ->
            // Indicates communication with the service was successful.
            // Use response.jwsResult to get the result data.
            val resultParts = result.jwsResult.split(".")
            if (resultParts.size == 3) {
                val bytes = Base64Utils.decode(resultParts[1])
                val newString = String(bytes)
                val json = JSONObject(newString)
                    // Check json fields to see if device is secure
                    // NOTE best practice is to send this to server instead of handling locally.
                }
        }
        .addOnFailureListener(this) { e: Exception ->
            // An error occurred while communicating with the service.
            if (e is ApiException) {
                // An error with the Google Play services API contains some
                // additional details.
                // You can retrieve the status code using the
                // e.statusCode property.
            } else {
                // A different, unknown type of error occurred.
                Log.d(TAG, "Error: ${e.message}")
            }

        }

Вот различные проверенные сценарии. Пожалуйста, ознакомьтесь с Android документации scenarios

8
задан rustyshelf 9 October 2008 в 00:36
поделиться

3 ответа

Я не на 100% уверен, возможно ли это, но Вы рассмотрели использование контроллеров другого представления для среды и портрета?

0
ответ дан 6 December 2019 в 02:26
поделиться

Когда необходимо, добавляю я UIView объекты к представлению в IB, который я делаю скрытыми. Дайте ему хороший цвет фона, таким образом, Вы видите его и отправляете всему этому путь к фону. Затем используйте кадр того представления, когда необходимо будет установить кадр объекта. Если у Вас есть многие из них, Вы могли бы рассмотреть использование UILabel вместо этого, таким образом, можно дать ему видимое имя в IB.

Если Вы волнуетесь по поводу проблем памяти, просто удаляете все они дополнительные UIViews в ViewDidLoad и просто сохраните их значения кадра в участнике CGRects. Это только работает, конечно, если у Вас нет ни одного из представлений, автоизменяют размер или меняют местоположение на, вращаются, который Вы, вероятно, не были должны так или иначе в этом случае. Я делаю это для изменять размер/менять местоположение по любой причине, не как раз в то самое время, когда экран вращается.

1
ответ дан 6 December 2019 в 02:26
поделиться

Атрибуты AutoSize объектов IBOutlet в инспекторе размеров IB (команда 3) предоставляют несколько довольно хороших опций для автоматического растяжения и позиционирования элементов. Вы можете контролировать положение экрана L / R и T / B, а также относительную ширину и высоту. Вы не можете получить полный контроль над макетом, но большинство основных операций есть.

0
ответ дан 6 December 2019 в 02:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: