Apps in SharePoint 2013/office
365:
I have already covered about the features and benefits of introducing apps in my earlier posts. Please
have a look into it.
Just do copy/paste the below code and execute it.
Note: The below shared code is 100% verified/executed.
Please reach the below post URL to get the hostweb url through REST service
http://sharepointquicksolutions.blogspot.com/2016/12/get-sharepoint-host-web-url-using-rest.htmlAppmanifest.xml:
Set read level permisisons to the web
<p id="getHostWebURL"> </p>
'use strict'; var hostweburl, appweburl; var website; $(document).ready(function () { appweburl = window.location.protocol + "//" + window.location.host + _spPageContextInfo.webServerRelativeUrl; hostweburl = _spPageContextInfo.siteAbsoluteUrl; //hostweburl = decodeURIComponent(getQueryStringParameter("SPHostUrl")); //appweburl = decodeURIComponent(getQueryStringParameter("SPAppWebUrl")); var scriptbase = hostweburl + "/_layouts/15/"; $.getScript(scriptbase + "SP.Runtime.js", function () { $.getScript(scriptbase + "SP.js", retrieveListItems); } ); }); // Function to retrieve a query string value. // For production purposes you may want to use // a library to handle the query string. function getQueryStringParameter(paramToRetrieve) { var params = document.URL.split("?")[1].split("&"); var strParams = ""; for (var i = 0; i < params.length; i = i + 1) { var singleParam = params[i].split("="); if (singleParam[0] == paramToRetrieve) return singleParam[1]; } } function retrieveListItems() { var context = new SP.ClientContext(appweburl); var appContextSite = new SP.AppContextSite(context, hostweburl); website = appContextSite.get_web(); context.load(website); context.executeQueryAsync(onGetWebSuccess, onGetWebFail); //the remaining code is omitted for clarity } function onGetWebSuccess() { alert("calling" + website.get_title()); $('#getHostWebURL').text("The title of the host web of this app is " + website.get_title()); } function onGetWebFail(sender, args) { alert('Failed to get lists. Error:' + args.get_message()); }
function createFields() { currentcontext = new SP.ClientContext.get_current(); web = clientContext.get_web(); this.list = web.get_lists().getByTitle(‘ListName’); //Add new fields to the list //Single line of text Field this.newColumn = oList.get_fields().addFieldAsXml("Note: SP.Field.typeAsString Property is used to Gets or sets a value that specifies the type of the field.[From Msdn:http://msdn.microsoft.com/en-us/library/ee553500.aspx]", true, SP.AddFieldOptions.defaultValue); //Multi line of text Field this.newColumn = oList.get_fields().addFieldAsXml(" ", true, SP.AddFieldOptions.defaultValue); //Boolean Field this.newColumn = oList.get_fields().addFieldAsXml(" ", true, SP.AddFieldOptions.defaultValue); //Number Field this.newColumn = oList.get_fields().addFieldAsXml(" ", true, SP.AddFieldOptions.defaultValue); //DateTime Field this.newColumn = oList.get_fields().addFieldAsXml(" ", true, SP.AddFieldOptions.defaultValue); //People Picker Field this.newColumn = oList.get_fields().addFieldAsXml(" ", true, SP.AddFieldOptions.defaultValue); //Choice field(dropdown) this.newColumn= oList.get_fields().addFieldAsXml(" ", true, SP.AddFieldOptions.defaultValue); currentcontext.load(this.newfield); currentcontext.executeQueryAsync(Function.createDelegate(this, this.onListCreateSuccess), Function.createDelegate(this, this.onQueryFailed)); } function onListCreateSuccess(sender, args) {alert('sucess'); alert("Field Name: " + this.newfield.get_title()); } function onQueryFailed(sender, args) { alert('request failed ' + args.get_message() + '\n' + args.get_stackTrace()); } ChoiceA ChoiceA ChoiceB ChoiceC ChoiceD