Provider Hosted App中使用JOM问题

在使用SharePoint 2013的JOM时,出现以下问题:

ReferenceError: SP is not defined

经反复试验和搜索,得出以下两种方式:

一、直接引用JS文件,引用顺序很重要:

<script type="text/javascript" src="https://nn.sharepoint.com/teams/ap1/gct/_layouts/15/MicrosoftAjax.js"></script>
<script type="text/javascript" src="https://nn.sharepoint.com/teams/ap1/gct/_layouts/15/SP.Runtime.js"></script>
<script type="text/javascript" src="https://nn.sharepoint.com/teams/ap1/gct/_layouts/15/SP.js"></script>
<script type="text/javascript" src="https://nn.sharepoint.com/teams/ap1/gct/_layouts/15/SP.RequestExecutor.js"></script>

<script src="https://nn.sharepoint.com/teams/ap1/gct/SiteAssets/jquery-1.9.1.js"></script>

<script type="text/javascript">
var hostweburl ="https://nn.sharepoint.com/teams/ap1/gct";

$(document).ready(function () {
    var scriptbase = hostweburl + "/_layouts/15/";
    //ExecuteOrDelayUntilScriptLoaded(initializePage, "sp.js");
initializePage();
});

function initializePage()
{
    var context = SP.ClientContext.get_current();
    var user = context.get_web().get_currentUser();

    // This code runs when the DOM is ready and creates a context object which 

is needed to use the SharePoint object model
    $(document).ready(function () {
        getUserName();
    });

    // This function prepares, loads, and then executes a SharePoint query to 

get the current users information
    function getUserName() {
        context.load(user);
        context.executeQueryAsync(onGetUserNameSuccess, onGetUserNameFail);
    }

    // This function is executed if the above call is successful
    // It replaces the contents of the ‘message‘ element with the user name
    function onGetUserNameSuccess() {
        $(‘#message‘).text(‘Hello ‘ + user.get_title());
    }

    // This function is executed if the above call fails
    function onGetUserNameFail(sender, args) {
        alert(‘Failed to get user name. Error:‘ + args.get_message());
    }
}

二、使用Jquery 的$.getScript 方法

<script type="text/javascript">
var hostweburl ="https://nike.sharepoint.com/teams/ap1/gctech";

$(document).ready(function () {
    var scriptbase = hostweburl + "/_layouts/15/";
    var scriptBase = hostweburl + "/_layouts/15/";
$.getScript(scriptBase + "MicrosoftAjax.js").then(function (data) {
    return $.getScript(scriptbase + "SP.Runtime.js");
}).then(function (data) {
    return $.getScript(scriptbase + "SP.js");
}).then(function (data) {
    $.getScript(scriptBase + "SP.RequestExecutor.js");
}).then(function (data) {
    alert("Load as order");
/*
var ctx = new SP.ClientContext(appWebUrl),
        factory = new SP.ProxyWebRequestExecutorFactory(appWebUrl),
        web;

    ctx.set_webRequestExecutorFactory(factory);
    web = ctx.get_web();
    ctx.load(web);
    ctx.executeQueryAsync(function() {
        // log the name of the app web to the console
        console.log(web.get_title());
    }, function(sender, args) {
        console.log("Error : " + args.get_message());
    });
*/
});
</script>

时间: 2024-10-03 14:03:05

Provider Hosted App中使用JOM问题的相关文章

自己动手去除app中谷歌广告

最近想去研究一下去除app中的谷歌广告,由于换了手机,且使用安卓6.0系统,暂时不能root安装辅助软件. 前言: 查看了很多网络文章,一般都是两种方法:把显示广告大小的参数改为0,或是修改广告访问的连接为无效连接,前一种比较通用且简单,后一种比较费功夫,但是更节省流量和系统资源 ,然后发现网络上的文章大多是转载的,且转载文章的人没有检测实际效果和实验环境,没有备注实验时间,这样很多转载的文章只是提供一个思路,但已经达不到效果了,所以只好重新研究一下,因为我没有系统学习java语言,只能看到什么

在App中添加微信分享功能

随着微信平台运用越来越普遍,在app中往往需要将看到的消息发送给微信好友,分享到朋友圈,因此就需要添加微信分享的功能.我们可以通过微信的开发者平台上的相关文档来实现这个简单的功能. 1.在微信开发者平台注册应用程序的id,通过审核后可以获得一个appid 2.有了appID后下载最新的微信终端sdk文件,SDK文件包括 libWeChatSDK.a,WXApi.h,WXApiObject.h 这三个.资料下载页面: https://open.weixin.qq.com/cgi-bin/showd

利用浏览器调试APP中的H5页面

安卓手机的情况下,可以用chrome浏览器来调试. 打开地址: chrome://inspect/#devices 手机用USB数据线连接电脑,并启动USB调试模式. 只要在APP中打开H5页面,界面就会显示该页面地址 点击inspect进入调试模式 之后就可以像调试浏览器页面一样调试了. 这个方法也可以用来查看APP中哪些页面调用的是H5的页面. 苹果手机可以用Safari自带的调试工具调试,在Safari浏览器工具栏-开发一栏下.

如何把apk编译时间和最后次git commit的sha值,写入到app中

需求背景:我们修复Bug的时候,频繁提交APK包,导致测试同学搞不清哪个包才是最新的 比如一个版本3.0.1,我们可能后续基于这个版本陆续提交了好几个修复包 同时,如果服务端ip地址能在界面上配置的话,更好了 以上都是基于debug模式下的,线上版本不会出现这些选项 思路:git每次提交commit的时候,都会创建一个唯一的sha串,我们拿这个作为内部版本号. 先给上最终效果图 那么如何在gradle编译的时候,就把这些信息写入到app中呢 关键字 BuildConfig类. 在build.gr

iOS利用HealthKit框架从健康app中获取步数信息

微信和QQ的每日步数最近十分火爆,我就想为自己写的项目中添加一个显示每日步数的功能,上网一搜好像并有相关的详细资料,自己动手丰衣足食. 统计步数信息并不需要我们自己去实现,iOS自带的健康app已经为我们统计好了步数数据 我们只要使用HealthKit框架从健康app中获取这个数据信息就可以了 这篇文章对HealthKit框架进行了简单的介绍:http://www.cocoachina.com/ios/20140915/9624.html 对HealthKit框架有了简单的了解后我们就可以开始了

怎么在我们的App中集成条码扫描功能?

现在很多App都有条码扫描功能,有的手机比如某米在照相机中集成了条码扫描功能,但是还有一部分手机没有这样的集成,比如韩国某星,需要自己下载一个条码扫描App.今天我们就来看看怎么在自己的App中集成一个条码扫描的功能. 本文源码下载地址http://download.csdn.net/detail/u012702547/9101419 先来看张效果图: 自己开发一个条码扫描显然是非常不现实的,我们可以使用GitHub上的开源控件ZXing来实现这样一个功能. 使用ZXing当然要先下载:http

如何在android app中使用STL库

方法: 1.在jni目录下新建Application.mk; 加入 APP_STL := stlport_static右边的值还可以换成下面几个: system - 使用默认最小的C++运行库,这样生成的应用体积小,内存占用小,但部分功能将无法支持 stlport_static - 使用STLport作为静态库,这项是Android开发网极力推荐的 stlport_shared - STLport作为动态库,这个可能产生兼容性和部分低版本的Android固件,目前不推荐使用. gnustl_st

在 C# App 中嵌入 Chrome 浏览器使用 CefSharp

介绍 以前曾试过在app中整合一个可靠又快速的web浏览器吗? 在本文中,你会学到如何轻松地将奇妙的CefSharp网页浏览器组件(基于Chromium)集成到你的C# app中. 然后,你可以使用此web浏览器: 给用户提供一个集成的浏览体验 用HTML / JavaScript编程添加嵌入式界面 用于web自动化 CefSharp可靠,快速,完全开源,不需要任何额外的依赖就可以安装到最终用户(除VC ++ Runtime 2013以外). 在本指南中,我们将使用WinForms项目,但Cef

总结XX网app中webapp常见的前端错误。

在2016年12月至2017年1月,这一个月的时间内,我参与了易政网app中webapp前端项目的工作,下面将我在此次项目中犯的错误总结起来,以防下次再犯. 注意点 一:复用 可复用的地方一定要复用,不然后期改样式会累死... 二:防止类名冲突 在写类名的时候最好加个前缀,不然在后期可能会有css文件合并,到时候有类名冲突就尴尬了... 三:外链导入 js和css文件最好用外链式导入,如果直接放在html中不好查看,(如果其中有的样式没有用到,jsp会报错). 四:跟标准 项目标准一定要统一好,