在之前的文章中,已经开发了一个简单的WebIM,但是这个WebIM是在独立的页面中的,今天发布的WebIM是一个可以嵌入到自己网页中的版本,你只需添加少量的代码,就可以在页面中嵌入一个WebIM。不过目前这个WebIM的功能比较简单,如果大家有什么需求可以在评论中提出,或通过WebIM与我联系。以后可能还会将云翔在线软件平台中的网盘等在线应用集成进来。
下载源代码后,按以下步骤操作就可以将WebIM嵌入到网页中。
1.将Release中的Bin,App_Data和YunXiang三个文件夹拷贝到网站的根目录下。
2.在将要嵌入WebIM的页面中添加一下引用:
<link href="YunXiang/Themes/Default/skin.css" rel="stylesheet" type="text/css" /> <script src="YunXiang/json2.js" type="text/javascript"></script> <script src="YunXiang/Config.js" type="text/javascript"></script> <script src="YunXiang/Core.js" type="text/javascript"></script>
3.在Global.asax的Application_Start和Application_End中添加以下代码(如果没有Global.asax则拷贝Global.asax到网站根目录下)
void Application_Start(object sender, EventArgs e) { //在应用程序启动时运行的代码 YunXiang.MessageManagement.Instance.Initialize(Context); } void Application_End(object sender, EventArgs e) { //在应用程序关闭时运行的代码 YunXiang.MessageManagement.Instance.Dispose(); }
4.在web.config的httpHandlers节点中添加以下配置:
<httpHandlers> <add path="Lesktop.aspx" verb="*" type="YunXiang.Lesktop"/> <add path="recevie.aspx" verb="*" type="YunXiang.WebIM_ReceiveHandler"/> <add path="send.aspx" verb="*" type="YunXiang.WebIM_SendHandler"/> </httpHandlers>
5.将WebIM嵌入到页面中以后,可以通过以下两种方式启动会话:
System.StartChat("用户名", "对方的用户名");
//不指定用户,启动时才输入 System.StartChat();
6.常见问题
(1) 嵌入WebIM会影响页面的启动速度吗?
由于嵌入WebIM必须引用Core.js文件,因此,嵌入WebIM后,需要多下载几个文件。但是,只要不启动会话,就不会加载和WebIM相关的脚本(Window.js,Controls.js,Desktop.js,WebIM.js等),只有第一次启动时才会加载。
(2) WebIM会插入DOM对象吗?
只要不启动会话,WebIM不会插入任何DOM对象。