Для меня проблема с неправильным импортом пространства имен menu.xml
вызвала эту проблему.
Мой оригинальный menu.xml
:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/tools">
<item android:id="@+id/action_search"
android:title="@string/map_option_search"
android:icon="@drawable/ic_action_search"
app:showAsAction="collapseActionView|ifRoom"
app:actionViewClass="android.support.v7.widget.SearchView"/>
</menu>
Похоже, что xmlns:app="http://schemas.android.com/tools"
вызывал MenuItemCompat.getActionView()
, чтобы вернуться null
. Изменение этого импорта в xmlns:app="http://schemas.android.com/apk/res-auto"
устранило проблему.
Новая работа menu.xml
:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/action_search"
android:title="@string/map_option_search"
android:icon="@drawable/ic_action_search"
app:showAsAction="collapseActionView|ifRoom"
app:actionViewClass="android.support.v7.widget.SearchView"/>
</menu>
Вам необходимо понять, как работает аутентификация. Если вы используете Azure Active Directory для аутентификации, то любое приложение, которое требуется для аутентификации, должно быть зарегистрировано в AAD (Azure Active Directory). В вашем случае и фронт, и бэкэнд должны быть зарегистрированы в AAD, а ваш бэкэнд должен иметь доверие к приложению веб-интерфейса и к тому, что вы настраиваете в Azure. https://docs.microsoft.com/en-us/azure/app-service/app-service-web-tutorial-auth-aad
Ваш веб-интерфейс должен контролировать поток и после аутентификации вы получаете перенаправление во внешний интерфейс, и он должен получать токен от AAD, и вам придется использовать этот токен в заголовке авторизации для доступа к API бэкенда. Для этого типа потока вы можете использовать AADL (библиотека AAD https://github.com/AzureAD/azure-activedirectory-library-for-js ), которая может позаботиться об этом и, как правило, лучший выбор, который этот вид потока аутентификации.
Еще один момент: зачем вам нужно использовать службу приложений Azure для Angular / HTML, когда это статический интерфейс? Вы можете посмотреть на хостинг-сайт Azure Static, который сэкономит вам кучу средств. https://docs.microsoft.com/en-us/azure/storage/blobs/storage-blob-static-website
Дополнительные ресурсы https: // docs. microsoft.com/en-us/azure/active-directory/develop/quickstart-v1-angularjs-spa