Ionic framework 我们如何在爱奥尼亚4上获得android代币?
您好,我使用的是fcm ionic native插件,它在android 7及以下版本中运行良好,但在android 8 Oreo及以上版本中,它无法获取设备令牌,可能会出现什么问题?您可以使用下面的代码,希望它能为您解决问题:Ionic framework 我们如何在爱奥尼亚4上获得android代币?,ionic-framework,device,access-token,android-8.0-oreo,cordova-plugin-fcm,Ionic Framework,Device,Access Token,Android 8.0 Oreo,Cordova Plugin Fcm,您好,我使用的是fcm ionic native插件,它在android 7及以下版本中运行良好,但在android 8 Oreo及以上版本中,它无法获取设备令牌,可能会出现什么问题?您可以使用下面的代码,希望它能为您解决问题: export interface AuthResponseData { kind: string; idToken: string; email: string; refreshToken: string; localId: string; ex
export interface AuthResponseData {
kind: string;
idToken: string;
email: string;
refreshToken: string;
localId: string;
expiresIn: string;
registered?: boolean;
}
export class AuthService implements OnDestroy {
private _user = new BehaviorSubject<User>(null);
get token() {
return this._user.asObservable().pipe(
map(user => {
if (user) {
return user.token;
} else {
return false;
}
})
);
}
constructor(private http: HttpClient) { }
signup(email: string, password: string) {
return this.http
.post<AuthResponseData>(
`https://identitytoolkit.googleapis.com/v1/accounts:signUp?key=${yourAPIKey}`,
{ email, password, returnSecureToken: true })
.pipe(tap(this.setUserData.bind(this)));
}
login(email: string, password: string) {
return this.http
.post<AuthResponseData>(
`https://identitytoolkit.googleapis.com/v1/accounts:signInWithPassword?key=${yourAPIKey}`,
{ email, password, returnSecureToken: true })
.pipe(tap(this.setUserData.bind(this)));
}
private setUserData(userData: AuthResponseData) {
const expirationTime = new Date(new Date().getTime() + +userData.expiresIn * 1000);
const user = new User(userData.localId, userData.email, userData.idToken, expirationTime);
this._user.next(user);
this.storeAuthData(userData.localId, userData.idToken, expirationTime.toISOString(), userData.email);
}
private storeAuthData(userId: string, token: string, tokenExpirationDate: string, email: string) {
const data = JSON.stringify({ userId, token, tokenExpirationDate, email });
Plugins.Storage.set({ key: 'authData', value: data });
}
}
导出接口AuthResponseData{
种类:弦;
idToken:字符串;
电子邮件:字符串;
刷新令牌:字符串;
本地化:字符串;
expiresIn:字符串;
注册?:布尔值;
}
导出类AuthService实现OnDestroy{
private _user=new BehaviorSubject(null);
获取令牌(){
返回此。_user.asObservable().pipe(
映射(用户=>{
如果(用户){
返回user.token;
}否则{
返回false;
}
})
);
}
构造函数(私有http:HttpClient){}
注册(电子邮件:string,密码:string){
返回此文件。http
.post获取更多信息您好谢谢您的回答,代码是否获得设备令牌以便我可以发送推送通知?我还使用FireStore令牌通常来自服务器端并存储在设备中,因此设备和服务器令牌是相同的,非常感谢