Можно ли использовать левую панель навигации SharePoint в «приложении, размещенном у поставщика». Навигация, показанная на сайте SharePoint, «PlaceHolderLeftNavBar». Есть ли какой-нибудь способ вызова ajax или функции REST/CSOM?
Использование левосторонней навигации SharePoint в пользовательском приложении SharePoint
Ответы (2)
Согласно официальной документации MSDN, CSOM и JSOM содержат свойства навигации, которые также обеспечивают доступ к меню быстрого запуска (также известному как «левая панель навигации»).
Ссылки на документы следующие:
свойство SP.Navigation.quickLaunch (sp. js) (JSOM)
Навигация Свойство .QuickLaunch (CSOM)
Чтобы использовать CSOM или JSOM в приложении, размещенном у поставщика, вам потребуется пройти аутентификацию с помощью OAUTH (для Office 365/SharePoint Online) или с помощью сертификатов в среде с высоким уровнем доверия или в локальной среде.
Если вы используете шаблон приложения для SharePoint 2013, предоставленный Visual Studio 2013, и выбираете размещение у поставщика, он должен поставляться с файлом класса TokenHelper.cs/vb, который выполнит большую часть тяжелой работы для обоих сценариев. Дополнительные сведения о методах проверки подлинности также доступны в MSDN. В частности, обратите внимание на следующие разделы:
- Авторизация и проверка подлинности для приложений в SharePoint 2013 Как:
- Создание приложений с высоким уровнем доверия для SharePoint 2013 (дополнительная тема)
Я не уверен, что в настоящее время доступна чистая конечная точка REST, которая, безусловно, может упростить расширенные требования к авторизации CSOM/JSOM в приложении, размещенном у поставщика.
свойство SP.Web.navigation получает значение, определяющее структуру навигации на сайте, включая область быстрого запуска и верхнюю панель навигации.
Как получить доступ к навигации (быстрый запуск) через CSOM (JavaScript)
function getQuickLaunch(success,error)
{
var context = new SP.ClientContext.get_current();
var web = context.get_web();
var nav = web.get_navigation();
var quickLaunch = nav.get_quickLaunch();
context.load(quickLaunch);
context.executeQueryAsync(
function() {
var nodes = [];
var nodesCount = quickLaunch.get_count();
for(var i = 0; i < nodesCount;i++){
var node = quickLaunch.getItemAtIndex(i);
nodes.push(node);
}
success(nodes);
},
error
);
}
Применение
getQuickLaunch(
function(nodes){
for(var idx in nodes)
{
console.log(nodes[idx].get_title());
}
},
function(sender, args) {
console.log('Error:' + args.get_message());
}
);
Как получить доступ к навигации (быстрый запуск) через REST
function getQuickLaunch(siteurl, success, failure) {
$.ajax({
url: siteurl + "/_api/web/navigation/quickLaunch",
method: "GET",
headers: { "Accept": "application/json; odata=verbose" },
success: function (data) {
success(data.d.results);
},
error: function (data) {
failure(data);
}
});
}
Применение
getQuickLaunch(_spPageContextInfo.webAbsoluteUrl,
function(nodes){
for(var idx in nodes)
{
console.log(nodes[idx].Title);
}
},
function(error) {
console.log(JSON.stringify(error));
}
);