JS快速集成指南
通用集成步骤
下载ShareSDK for JS 组件
打开Github下载JSSample项目。将JSApi/ShareSDK.js拷贝到Web页面可以访问的路径(现在不支持浏览器打开的web应用,只支持App内置的Web页面,这个web页可以自己在本地也就是项目里创建html文件,这个html文件也可以网上得到)。
导入ShareSDK.js脚本
在Web页中加入ShareSDK.js脚本。如:
|
<script language="javascript" type="text/javascript" src="ShareSDK.js"></script> |
初始化SDK
|
<!DOCTYPE html> <html> <head> <title>ShareSDK for JS Sample</title> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /> <script language="javascript" type="text/javascript" src="ShareSDK.js"></script> <script language="javascript" type="text/javascript"> function init() { $sharesdk.open("iosv1101", true); } </script> </head> <body onload="init()" style="text-align: center"></body></html> |
可以在页面onload事件中调用open方法进行SDK初始化。代码如下:
|
function init() { $sharesdk.open("iosv1101", true); var sinaConf = {}; sinaConf["app_key"] = "568898243"; sinaConf["app_secret"] = "38a4f8204cc784f81f9f0daaf31e02e3"; sinaConf["redirect_uri"] = "http://www."; $sharesdk.setPlatformConfig($sharesdk.platformID.SinaWeibo, sinaConf); } |
由于Android平台推荐使用shareSDK.xml文件配置应用信息。此文件可以在jsdemo中找到,将其放入您安卓项目的assets目录下即可。
分享内容
先构造分享内容结构,代码如下:
|
var params = {"text" : "测试的文字", "imageUrl" : "http://img0./img/image/shouye/tangwei.jpg", "title" : "测试的标题","titleUrl" : "http://","description" : "测试的描述", "site" : "ShareSDK","siteUrl" : "http://", "type" : $sharesdk.contentType.Text}; |
然后将内容传入分享接口
|
$sharesdk.shareContent($sharesdk.platformID.SinaWeibo, params, function (platform, state, shareInfo, error) {alert("state = " + state + "\nshareInfo = " + shareInfo + "\nerror = " + error);}); |
|
$sharesdk.showShareView($sharesdk.platformID.SinaWeibo, params, function (platform, state, shareInfo, error) {alert("state = " + state + "\nshareInfo = " + shareInfo + "\nerror = " + error);}); |
|
$sharesdk.shareContent($sharesdk.platformID.SinaWeibo, params, function (platform, state, shareInfo, error) { alert("state = " + state + "\nshareInfo = " + shareInfo + "\nerror = " + error); }); |
|
$sharesdk.oneKeyShareContent([$sharesdk.platformID.SinaWeibo, $sharesdk.platformID.TencentWeibo], params, function (platform, state, shareInfo, error) { alert("state = " + state + "\nshareInfo = " + shareInfo + "\nerror = " + error); }); |
用户授权
调用ShareSDK中的authorize方法可进行用户授权。代码如下:
|
$sharesdk.authorize($sharesdk.platformID.SinaWeibo, function (platform, state, error){ alert("state = " + state + "\nerror = " + error); }); |
获取用户资料
调用ShareSDK中的getUserInfo来获取授权用户的信息。代码如下:
|
$sharesdk.getUserInfo($sharesdk.platformID.SinaWeibo, function (platform, state, user, error) { alert("state = " + state + "\nuser = " + user + "\nerror = " + error); }); |
iOS部分集成步骤(不发布iOS版本可略过此部分)
导入JS桥接的iOS版本组件
打开下载的JS包里的iOS/ShareSDKForJS/ShareSDKForJS.xcodeproj项目工程,选择ShareSDKForJS静态库运行Xcode,如图:

运行成功之后,请大家打开文件找到Build文件夹,然后进入文件中找到build/Products/Debug-iphonesimulato /libShareSDKForJS.a文件以及找到build/Products/Debug-iphonesimulator/usr/local /include/ShareSDKJSBridge.h这个文件,再将libShareSDKForJS.a和ShareSDKJSBridge.h这 2个文件导入到你的项目里,如图

注意:(如果在分享中弹不出分享的菜单,如果大家的ShareSDK.js文件是本地的,要把这个加到Build Phases里面的Copy Bundle Resources选项)
下载iOS版本ShareSDK,并导入到工程中。
登录ShareSDK的官方网站下载并解压最新版本的SDK。如果您还尚未下载,请 点击这里下载 或者访问 http:///Download 。解压后如图所示:

将ShareSDK导入工程中,并添加相应的依赖库。此步骤可以参考:《iOS快速集成指南》中的第一、第二步。执行完成后,如下图所示:

为UIWebView添加消息捕获
先导入ShareSDKJSBridge.h头文件。
|
#import "ShareSDKJSBridge.h" |
然后给UIWebView设置一个委托对象,如:
注意:webView是UIWebView的对象实例。
最后实现shouldStartLoadWithRequest委托方法,并在方法中加入JSBridge的captureRequest方法,代码如下:
|
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { return ![[ShareSDKJSBridge sharedBridge] captureRequest:request webView:webView]; } |
添加完毕后就可以对工程进行运行测试。
Android部分集成步骤(不发布Android版本可略过此部分)
导入的步骤如下:
1、参考”安卓快速集成文档“章节的说明,导入ShareSDK for Android的jar库和图片、文字资源。
2、复制github上的jsdemo项目中”cn.sharesdk.js”包中的源代码复制到你的项目中。
3、在您WebView加载页面地址之前。调用ShareSDKUtils.prepare(webview, webviewClient);
请注意,ShareSDKUtils.prepare方法要在WebView.setWebViewClient(WebViewClinet);之后调用,而且此后不能再调用setWebViewClient方法,否则ShareSDK的初始化操作可能失败。
下面的代码来自github上的demo:
|
public class MainActivity extends Activity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); WebView wvBody = new WebView(this); WebViewClient wvClient = new WebViewClient(); wvBody.setWebViewClient(wvClient); wvBody.setWebChromeClient(new WebChromeClient() { public boolean onJsAlert(WebView view, String url, String message, JsResult result) { return super.onJsAlert(view, url, message, result); } }); |
|