我尝试了一个简单的if语句,以避免在每个页面加载时运行下面的代码,但是dropbox_authStatus === 1
的第二部分没有被触发,尽管alert("authStatus: "+dropbox_authStatus);
告诉我dropbox_authStatus是1.有什么问题我的代码?
$('document').ready(function() {
dropbox_authStatus = localStorage.getItem('dropbox_authstatus');
alert("authstatus: "+dropbox_authStatus);
if(!dropbox_authStatus) {
localStorage.setItem('dropbox_authstatus',1);
//initialization
var client = new Dropbox.Client({
key: "hm4c58qp6rpysot", secret: "w7cdx6o8p2hyubj"
});
alert("initialized");
//preset driver to the dropbox page
client.authDriver(new Dropbox.Drivers.Redirect());
//authentication
client.authenticate(function(error, client) {
if (error) {
return showError(error); // Something went wrong.
}
});
} else if (dropbox_authStatus === 1) {
localStorage.setItem('dropbox_authstatus',2);
//initialization
var client = new Dropbox.Client({
key: "hm4c58qp6rpysot", secret: "w7cdx6o8p2hyubj"
});
alert("continued");
//preset driver to the dropbox page
client.authDriver(new Dropbox.Drivers.Redirect());
//authentication
client.authenticate(function(error, client) {
if (error) {
return showError(error); // Something went wrong.
}
client.getUserInfo(function(error, userInfo) {
if (error) {
return showError(error); // Something went wrong.
}
alert("hello: "+userInfo.name);
});
});
//Save Dropbox credentials
localStorage.setItem('dropbox_auth', JSON.stringify(client.credentials()));
alert("credentials saved:"+JSON.stringify(client.credentials()));
}
});
提前致谢! if语句中的代码主要属于github上托管的dropbox.js库:https://github.com/dropbox/dropbox-js/blob/master/doc/getting_started.md
答案 0 :(得分:0)
从原始问题的评论中得出答案
我只是猜测,但如果日志看起来是正确的,但条件不符合,那么dropbox_authStatus
可能是字符串而不是数字。
答案 1 :(得分:0)
最新版本的dropbox.js支持interactive: false
方法上的client.authenticate()
选项。您可以使用此公共API来实现相同的目标,并且您的代码不会因库更新而中断。
代码段:https://github.com/dropbox/dropbox-js/blob/master/doc/snippets.md#sign-into-dropbox-button