codenameone - 有没有办法让 FB 和 Google OAuth 登录在桌面构建/模拟器中工作?
问题描述
这些在模拟器和桌面版本中被破坏了。我在某处看到有人通过手动解析托管它们的嵌入式浏览器并编辑一些 html 内容来“修复”它们
是否有更清洁的解决方案或可以更详细地解释的解决方案?@Shai 将来会解决这个问题吗?桌面构建是专业订阅的巨大好处,并且可能会平衡许多人为此付费的规模。但是社交登录在今天很普遍,您不能指望移动用户为同一应用程序的桌面版本创建单独的登录
解决方案
在模拟器中,您可以使用凭据进行 Web 登录,这应该可以正常工作,例如:
Button facebook = new Button("Facebook", Resources.getGlobalResources().getImage("facebook.png"), "FlagButton");
add(facebook);
facebook.addActionListener(e -> {
final Login fb = FacebookConnect.getInstance();
fb.setClientId("....");
fb.setClientSecret("....");
fb.setRedirectURI("https://www.codenameone.com/");
fb.setCallback(new LoginCallback() {
@Override
public void loginFailed(String errorMessage) {
ToastBar.showErrorMessage("Login failed: " + errorMessage);
}
@Override
public void loginSuccessful() {
String token = fb.getAccessToken().getToken();
Response<Map> resp = Rest.get("https://graph.facebook.com/v2.12/me").
queryParam("access_token", token).
acceptJson().getAsJsonMap();
String userId = (String)resp.getResponseData().get("id");
new EnterPasswordForm(null, userId, null).show();
}
});
fb.doLogin();
});
推荐阅读
- c++ - 双重载 sin() 和 cos() 不保持 15 位十进制精度
- java - 如何模拟 .exchangeToMono().toFuture() 方法?
- reactjs - 如何在反应组件的地图方法中添加复选框或单选按钮?
- python - 如何将 S3 Select 用于嵌套 Parquet 对象
- google-visualization - 更改图像图表中的 Y 轴
- flutter - 如何在 Flutter 的 ScrollView 中获取子滚动偏移位置
- java - Jenkins 0 如何修复:2字节UTF-8序列的字节2无效?
- wordpress - 域名在 URL 中重复并显示错误此页面在 wordpress 中不起作用
- vue.js - 将 OAuth 令牌从一个 Vuejs 组件传递到另一个
- reactjs - 当我们在react js中移出输入字段框时如何禁用文本字段名称消失