我在java中編寫本機代碼來獲取gmail帳戶的帳戶信息。如何將數據從java返回給javascript?
雖然簡單地從第一種方法返回,我得到了未定義的JavaScript。在第二種方法中,我通過回調將電子郵件地址返回給js,它完美地工作。
第一方法: -
Java代碼: -
@ReactMethod
public String getUsername() {
AccountManager accountManager = AccountManager.get(myContext);
Account account = getAccount(accountManager);
if (account == null) {
return null;
} else {
return account.name;
}
}
RN側: -
let email = NativeModules.GetInfo.getUsername();
alert(email) //undefined
第二個方法:
java代碼: -
@ReactMethod
public void getUsername(Callback errorCallback, Callback successCallback) {
AccountManager accountManager = AccountManager.get(myContext);
Account account = getAccount(accountManager);
if (account == null) {
errorCallback.invoke("not found");
} else {
successCallback.invoke(account.name);
}
}
RN側: -
NativeModules.GetInfo.getUsername((error)=> {
alert(error)
},
(email)=> {
alert(email) //works perfect
}
)
和問題是什麼? –
簡單地返回第一種方法在javascript中產生未定義。我不得不使用回調。任何想法第一種方法有什麼問題? – kishan