tns构建android后——发布应用程序不会';不要打休息电话
降为 我用NativeScript+Angular编写了一个跨平台应用程序 我使用此命令创建.keystore文件(如中所示):tns构建android后——发布应用程序不会';不要打休息电话,android,angular,nativescript,nativescript-angular,Android,Angular,Nativescript,Nativescript Angular,降为 我用NativeScript+Angular编写了一个跨平台应用程序 我使用此命令创建.keystore文件(如中所示): keytool-genkey-v-keystore.keystore-alias-keyalg RSA-keysize 2048-validity 10000 我使用以下命令构建发布apk: tns构建android--发布--密钥存储路径“C:\Program Files\Java\jre1.8.0\U 201\bin\.keystore”--密钥存储密码--密钥存
keytool-genkey-v-keystore.keystore-alias-keyalg RSA-keysize 2048-validity 10000
我使用以下命令构建发布apk:
tns构建android--发布--密钥存储路径“C:\Program Files\Java\jre1.8.0\U 201\bin\.keystore”--密钥存储密码--密钥存储别名--密钥存储别名密码
然后我在我的Android设备(Android 9和Android 8)上安装了apk文件,但当我尝试登录(=>进行REST调用)时,它什么也不做。
没有显示任何内容,没有错误,也没有呼叫
我正在使用Nativescript的6.2.0版。
我在将项目迁移到NativeScript 6后发现了这个问题
我错在哪里?我错过什么了吗
更新
我用run
而不是build
尝试第二个命令,但是当我按下login按钮时,控制台没有显示任何内容。
控制台框卡在这句话上:
已成功安装在标识符为“xxxxxx”的设备上
更新
我删除了“hooks”、“node_modules”和“platforms”文件夹,然后重建了应用程序,但没有任何更改
更新
这是按钮的代码
当我按下带有空电子邮件和空密码的按钮时,会发出第一个警报
当我在所有凭证中按下按钮时,会引发第二个警报
第三个问题是,即使证书是正确的,也从未提出过
login.component.ts
user.service.ts
http
来自@angular/http
我解决了我的问题,将http客户端从@angular/core的http
(已弃用)更改为@angular/common/http的HttpClient
,您使用的是http服务器吗?在这种情况下,您需要在AndroidManifest.xml中添加一个网络安全配置文件/allow cleartexttrafficallowed=“true”。我正在使用一个使用asp.NETI创建的https服务器更新问题。有什么想法吗?
public login() {
if(!this.user.email || !this.user.password){
let options = {
title: 'ATTENZIONE!',
message: 'Inserire tutte le credenziali',
okButtonText: 'OK'
};
alert(options); //first
} else {
alert("HELLO WORLD!"); //second
this.userService.login(this.user).subscribe((res) => {
alert(res); //third
localStorage.setItem("authenticated", true);
localStorage.setItem("access_token", "bearer " + res.access_token);
localStorage.setItem("username", this.user.email);
},
(err)=>{
console.log("Something went wrong "+err);
alert("Credenziali errate");
return;
}
);
}
return;
}
login(user: User) {
let urlSearchParams = new URLSearchParams();
urlSearchParams.append('username', user.email);
urlSearchParams.append('password', user.password);
urlSearchParams.append('grant_type','password');
let body = urlSearchParams.toString();
var url = Config.apiUrl + "/token";
return this.http.post(url, body , { headers : this.getCommonHeaders() })
.map(res => res.json())
.catch( (error: any) => {Observable.throw(error.json().error)} );
}