РЕДАКТИРОВАТЬ 4:
Я был в состоянии решить проблему. Я не уверен, в чем именно проблема. В любом случае, я постараюсь описать, что заставило меня окончательно решить проблему. Прежде всего, я попытался построить его на ios, и когда я наконец смог это сделать, у меня возникла ошибка, из-за которой у меня не было разрешений для выполнения http-запросов от ios. Я решил это, добавив следующее в info.plist
файл
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
...
</dict>
После этого я не изменил идентификатор приложения, потому что делал облачные сборки, просто изменил его или пошел на локальные сборки.
Удаленные платформы, ловушки и папки node_modules.
npm i
в корневой папке. Другой build
, и он снова чудесным образом работал.
Описание: Я использую общий код для приложения на языке nativescript. Вход в веб-приложение работает нормально, хотя мобильного приложения не так много. Я аутентифицируюсь через Laravel API. Предполагается вернуть токен.
Запрос возвращается нулевым, и от Бэкэнда нет никаких признаков того, что запрос поступил туда.
Я искал и пробовал тысячи решений, я новичок в Angular и Nativescript, так что это может быть что-то базовое.
У меня NativeScriptHttpClientModule
импортировано и вставлено в массив провайдеров @NgModule
в app.module.tns.ts
import { NativeScriptHttpClientModule } from "nativescript-angular/http-client";
Здесь у меня проблема, единственные ошибки, выдаваемые в команде tns preview --bundle
, - это после того, где проблема. Пожалуйста, просмотрите комментарии ниже.
В authentication.service.ts
файле
login(email: string, password: string) {
let data = {
'email': email,
'password': password
};
// Email and password get through here fine.
return this.http.post<any>(`${env.config.apiUrl}/api/login`,
this.getFormUrlEncoded(data))
. pipe(map( (user) => {
// -> returns user=null and the only error I get
is relative to the code below, error TS2339: Property
'token' does not exist on type '{}'
if (user && user.token) {
this.storage.setItem('currentUser', JSON.stringify(user));
this.currentUserSubject.next(user);
}
return user;
}).catch(error => Observable.throw(error)));
}
EDIT:
Я подписан на login.component.tns.ts
файл
login() {
console.log(this.f.password.value);
this.authenticationService.login(this.f.email.value, this.f.password.value)
.pipe(first())
.subscribe(
data => {
this.router.navigate([this.returnUrl]);
},
error => {
this.alertService.error(error);
this.loading = false;
});
}
РЕДАКТИРОВАТЬ 2:
Я думаю, что это как-то связано с приложением tns preview, я пытаюсь создать приложение локально, чтобы определить, могу ли я успешно войти в систему.
РЕДАКТИРОВАТЬ 3:
Я успешно собираю приложение и запускаю devtools с Nativescript Sidekick на физически подключенном устройстве Android. У меня нет ошибок, и, на самом деле, я думаю, что запросы отправляются, хотя они сохраняются с Состояние ожидания навсегда.
Опять же, в Web App все работает нормально
Снимок экрана Chrome DevTools, показывающий, что запросы отправляются