我正在使用cca
工具链制作Chrome/Android/iOS应用程序。我正在使用chrome.identity
API来获得access_token
与谷歌API交互。
当我将interactive
设置为false
(immediate
至true
)时,应用程序能够获得令牌而无需再次显示权限对话框,但它仍然在我的Android设备上每次显示帐户选择器。这破坏了应用的体验,因为每次打开它,用户都会看到一个烦人的对话框。我怎么能让应用程序记住选择的帐户后,第一次,就像它的权限?
在Android上,可以在调用getAuthToken
的details
参数中指定accountHint
。例如:
var details = { interactive: true, accountHint: 'email@address.com' };
var callback = function(token, account) { ... };
chrome.identity.getAuthToken(details, callback);
这将绕过帐户选择对话框。请注意,回调函数有account
,可以为此目的而存储。
不幸的是,这是android专用的;当你添加额外的东西到details
时,Chrome桌面不喜欢它。您需要使用chrome.runtime.getPlatformInfo
来确定您正在运行的平台,以便您可以创建并传递正确的details
对象。在Android上,platformInfo.os
将会是cordova-android
。