我在使用 Google Picker 时遇到了一些我似乎无法解决的问题。
首先,我在通过谷歌选择器窗口登录我的谷歌账户时遇到问题(如https://groups.google.com/forum/#!topic/google-picker-api/3VXqKO1BD5g和其他地方报告的那样)。简而言之,选择器可以完美运行,直到它从登录操作返回为止。登录后无法加载选择器视图。采取的操作如下:
- 打开谷歌选择器
- 接收未登录页面,带有登录按钮。
- 按钮为谷歌登录打开一个新窗口。
- 输入详细信息并登录。登录成功。
- 登录窗口关闭,焦点返回到谷歌选择器,但无法识别登录,而是收到上面提到的“您请求的功能当前不可用。请稍后再试。” 错误。使用 js ReferenceError: init is not defined
其次,我在 IE10 中遇到问题,即使我是,浏览器也会显示“您未登录”屏幕。单击该按钮将打开立即关闭的登录窗口(已识别登录?),但谷歌选择器窗口上没有任何反应。
此处找到的示例:http : //www-personal.umich.edu/~johnathb/misc/gpicker.html 似乎在 IE10 上工作得很好。所以我不确定问题是什么..可能的区别是:
- 我在我的网站上启用了 Https(但关闭后似乎没有什么不同)。
- 我目前正在 Intranet 中运行我的应用程序(尽管可以访问 Internet)。
- 与公共IP有关吗?但这并不能解释为什么 Google Picker 在 Firefox 等中工作。
用于加载和处理选取器的代码如下所示:
$('.googleDrivePicker').click(function () {
var inputControl = $(this).data('inputid');
// Google Picker API for the Google Docs import
google.load('picker',
'1',
{"language": '@Session["kieli"]',
"callback" : function () {
// Create and render a Picker object for searching images.
var picker = new google.picker.PickerBuilder().
addView(google.picker.ViewId.DOCS).
addView(google.picker.ViewId.IMAGE_SEARCH).
setCallback(function (data) {
// A simple callback implementation.
var url = '';
if (data[google.picker.Response.ACTION] == google.picker.Action.PICKED) {
var doc = data[google.picker.Response.DOCUMENTS][0];
url = doc[google.picker.Document.EMBEDDABLE_URL] || doc[google.picker.Document.URL];
$('#' + inputControl).val(url).change();
}
}).
build();
picker.setVisible(true);
$('.picker.modal-dialog-bg').css('z-index', 1101);
$('.picker.modal-dialog.picker-dialog').css('z-index', 1102);
}
});
});
非常感谢您对上述任何一个问题的帮助。