Привет всем разработчикам! В этом разделе я собираю моменты, которые могут понадобиться при разработке других проектов, чтобы не забыть , да и вспомнить, как я решил когда то какой-то сложный момент. Возможно, это будет полезно кому то еще :) Этот раздел без дизайна, без воды, тут только те моменты, которые важны именно для разраба
HMS
OAuth 2.0-based Authentication
get_token access
https://developer.huawei.com/consumer/en/doc/HMSCore-Guides/oauth2-0000001212610981
**************************
https://forums.developer.huawei.com/forumPortal/en/topic/0202810912208970010
send_push
push structure
{
"validate_only": false,
"message": {
"android": {
"notification": {
"title": "test title",
"body": "test body",
"click_action": {
"type": 3
}
}
},
"token": ["pushtoken1"]
}
}
token - array
****************************************
https://developer.huawei.com/consumer/en/doc/HMSCore-Guides/android-server-dev-0000001050040110
POST https://push-api.cloud.huawei.com/v1/[clientid]/messages:send
****************************************
https://masterixs.ru/lk/api/alternate/send_push_test_atata1_huawei.php
test
**********************************************
https://stackoverflow.com/questions/18913345/curl-posting-with-header-application-x-www-form-urlencoded
php curl send push HMS
//
// A very simple PHP example that sends a HTTP POST to a remote site
//
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"http://xxxxxxxx.xxx/xx/xx");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,
"dispnumber=567567567&extension=6");
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));
// receive server response ...
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$server_output = curl_exec ($ch);
curl_close ($ch);
// further processing ....
if ($server_output == "OK") { ... } else { ... }
**********************************************
php json decode
$json = '{"countryId":"84","productId":"1","status":"0","opId":"134"}';
$json = json_decode($json, true);
echo $json['countryId'];
echo $json['productId'];
echo $json['status'];
echo $json['opId'];
**********************************************
Встраиваем карты от Huawei в Android приложение
https://habr.com/ru/articles/521810/
**********************************************
Getting Started with Android
https://developer.huawei.com/consumer/en/doc/AppGallery-connect-Guides/agc-get-started-android-0000001058210705
**********************************************
com.huawei.agconnect plugin not found
https://stackoverflow.com/questions/71121109/com-huawei-agconnect-plugin-not-found
buildscript
{
repositories
{
maven {url = uri("https://developer.huawei.com/repo/") }
}
dependencies
{
classpath('com.android.tools.build:gradle:8.1.1')
classpath("com.huawei.agconnect:agcp:1.9.1.300")
}
}
plugins
{
id 'com.android.application' version '8.1.1' apply false
id 'com.android.library' version '8.1.1' apply false
}
build.gradle :app
plugins
{
id 'com.android.application'
id 'com.huawei.agconnect'
}
android
{
...
}
dependencies
{
implementation 'com.huawei.agconnect:agconnect-core:1.9.1.300'
}
settings.gradle Project
pluginManagement {
repositories {
google()
mavenCentral()
maven { url 'https://developer.huawei.com/repo/' }
gradlePluginPortal()
}
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
maven { url 'https://developer.huawei.com/repo/' }
}
}
rootProject.name = "SomeProject"
include ':app'
**************************************************************
**********************************************
https://forums.developer.huawei.com/forumPortal/en/topic/0202798722342170172
https://stackoverflow.com/questions/36185774/release-debug-version-and-authorization-google
Ошибка, при релизном варианте не формируется токен HMS
What should I do if a 6003 error occurs when I try to connect to HMS Core?
get huawei hms push token failed, com.huawei.hms.common.ApiException: 6003: certificate fingerprint error
https://stackoverflow.com/questions/36185774/release-debug-version-and-authorization-google
Go to Build --- Select Build Variant -- On the left Side Select "Release" as build variant -- now go to module settings ( or try to run project , android studio will tell you about a error and click fix error button) --- Select Signing tab --- add your release key and passwords -- now goto build types -- select release -- on signing config select your release key config -- now run your project -- now run your signing report --- you can find SHA1 under release build -- enter that sha1 code on your developer console
Вам необходимо найти код SHA1 для ключа выпуска и ввести его в консоли разработчика. (для меня консоль разработчика — это Firebase, некоторые люди могут использовать разные сервисы). Чтобы найти код SHA1. простой способ это
Перейдите к сборке --- выберите вариант сборки -- слева выберите «Выпуск» в качестве варианта сборки – теперь перейдите к настройкам модуля (или попробуйте запустить проект, студия Android сообщит вам об ошибке и нажмите кнопку «Исправить ошибку») --- Выберите вкладку "Подписание" --- добавьте ключ выпуска и пароли -- теперь перейдите к типам сборки -- выберите выпуск -- при настройке подписи выберите конфигурацию ключа выпуска -- теперь запустите проект -- теперь запустите отчет о подписании -- - вы можете найти SHA1 в сборке выпуска - введите этот код sha1 на консоли разработчика.
**********************************************
signingConfigs {
debug {
storeFile file(DEBUG_STORE_FILE)
storePassword DEBUG_STORE_PASSWORD
keyAlias DEBUG_KEY_ALIAS
keyPassword DEBUG_KEY_PASSWORD
}
release {
storeFile file(RELEASE_STORE_FILE)
storePassword RELEASE_STORE_PASSWORD
keyAlias RELEASE_KEY_ALIAS
keyPassword RELEASE_KEY_PASSWORD
}
}
buildTypes {
debug {
signingConfig signingConfigs.debug
}
release {
signingConfig signingConfigs.release
}
}
**************************************************************
OpenStreetMap
https://habr.com/ru/articles/143177/
Переход с Google Maps на OpenStreetMap
osmdroid
https://github.com/osmdroid/osmdroid/wiki
https://github.com/osmdroid/osmdroid/wiki/How-to-use-the-osmdroid-library-(Kotlin)
**************************************************************
Отправка пуш уведомлений в иос
https://developer.apple.com/account/resources/authkeys/list
тут создаем ключ APNKey
как создадастся, берем оттуда
Key ID
Team ID
Все загружаем в консоль файрбасе
Project settings - Cloud Messaging
Отправка пуш такая же как и для андроид в принципе
Документация
https://firebase.google.com/docs/cloud-messaging/ios/client?hl=ru
**************************************************************
ошибка токена Firebase Google
Вкратце: нужно заглянуть в Google Cloud Console > API и службы > Учетные данные > Ключи API и взять оттуда правильный ключ Android
(нажмите «SHOW KEY» справа), а затем поместить его в файл Firebase google-services. .json — api_key — current_key (как показано на картинке ниже).
Внезапно та же ошибка (FIS_AUTH_ERROR) появилась в одном из моих приложений, где я использую Firebase Cloud Messaging. Все работало без проблем,
и вдруг приложение не смогло получить токен приложения/устройства с помощью getToken(). После нескольких часов исследований я обнаружил кое-что,
что решило мою проблему. Я решил проверить значения в файле google-services.json, чтобы узнать, соответствуют ли они соответствующим параметрам
в консоли Firebase в настройках моего проекта. Сначала я загрузил новый файл google-services.json, который сравнил с тем, который уже был у меня
в папке моего приложения, и они оба были одинаковыми, без каких-либо различий. В консоли Firebase я проверял один за другим идентификатор проекта,
номер проекта и т. д. Когда я добрался до ключа веб-API, его значение выглядело очень похоже на api_key из google-services.json, но оба значения
были разными. Тогда я решил отредактировать файл и вместо api_key поставил значение из Web API Key. Потом я почистил проект и пересобрал,
после чего все снова стало работать просто идеально.
Источник:
https://stackoverflow.com/questions/60698622/java-io-ioexception-fis-auth-error-in-android-firebase
**************************************************************
scrollview in swift not scrolling
https://www.youtube.com/watch?v=WLwQE3f2ZYg
**************************************************************
BottomNavigationView элементы навигации текст, отображаемый над значком
**************************************************************
Я столкнулся с той же проблемой после обновления с 1.4.0 до 1.5.0, но в моем случае проблема была вызвана тем, что я использовал тему для BottomNavigationView, которая унаследована от Widget.Design.BottomNavigationView:
Посмотрев на Widget.Design.BottomNavigationViewXML, я понял, что в версии 1.5.0 minHeightбыл добавлен атрибут, вызывающий проблему, с которой мы столкнулись.
Поэтому я добавил - 0dp
к своему стилю следующее:
И проблема была решена!
Источник
**************************************************************