/*
Title: wx
Description: wx
*/
<div class="outline">
isInstalled
refreshToken
</div>
概述
wx 封裝了微信開放平臺的SDK奸披,集成了微信登錄、微信分享功能涮雷;可用于實現(xiàn)微信賬號登錄阵面,分享內(nèi)容到朋友圈或好友;使用之前須從微信開放平臺申請開發(fā)者賬號并創(chuàng)建應(yīng)用洪鸭,獲取 appid 和 secret样刷。wx 模塊優(yōu)化了 weiXin 模塊的登錄、分享功能览爵,不包含微信支付功能置鼻。
使用此模塊之前建議先配置 config.xml 文件,配置完畢蜓竹,需通過云端編譯生效箕母,配置方法如下:
- 名稱:wx
- 參數(shù):urlScheme、apiKey俱济、apiSecret
- 配置示例:
<feature name="wx">
<param name="urlScheme" value="wxd0d84bbf23b4a0e4"/>
<param name="apiKey" value="wxd0d84bbf23b4a0e4"/>
<param name="apiSecret" value="a354f72aa1b4c2b8eaad137ac81434cd"/>
</feature>
-
字段描述:
urlScheme:(必須配置)用于實現(xiàn)應(yīng)用間跳轉(zhuǎn)及數(shù)據(jù)交換嘶是,本應(yīng)用可以啟動微信客戶端,也可以從微信客戶端跳回本應(yīng)用蛛碌。urlScheme 的 value 值是從微信開放平臺獲取的 appid聂喇。
apiKey:(必須配置)從微信開放平臺獲取的 appid,值與 urlScheme 相同蔚携。
apiSecret:從微信開放平臺獲取的 secret希太。獲取 accessToken 時需要配置此項克饶。
<div id="a1"></div>
isInstalled
判斷當(dāng)前設(shè)備是否安裝微信客戶端
isInstalled(callback(ret, err))
callback(ret, err)
ret:
- 類型:JSON對象
- 內(nèi)部字段:
{
installed: true //布爾型;true||false誊辉,當(dāng)前設(shè)備是否安裝微信客戶端
}
err:
- 類型:JSON對象
- 內(nèi)部字段:
{
code: 0 //數(shù)字類型彤路;
//錯誤碼:
//-1(未知錯誤),
//0(成功)
}
示例代碼
var wx = api.require('wx');
wx.isInstalled(function(ret, err){
if(ret.installed){
alert("當(dāng)前設(shè)備已安裝微信客戶端");
}else{
alert('當(dāng)前設(shè)備未安裝微信客戶端');
}
});
可用性
iOS系統(tǒng)芥映,Android系統(tǒng)
可提供的1.0.0及更高版本
<div id="a2"></div>
shareText
分享文本內(nèi)容
shareText({params}, callback(ret, err))
params
apiKey:
- 類型:字符串
- 描述:(可選項)從微信開放平臺獲取的 appid洲尊,若不傳則從當(dāng)前 widget 的
config.xml
中讀取。
scene:
- 類型:字符串
- 描述:(可選項)場景
- 默認(rèn)值:timeline
- 取值范圍:
- timeline(朋友圈)
text:
- 類型:字符串
- 描述:分享的文本
callback(ret, err)
ret:
- 類型:JSON對象
- 內(nèi)部字段:
{
status: true //布爾型奈偏;true||false
}
err:
- 類型:JSON對象
- 內(nèi)部字段:
{
code: 0 //數(shù)字類型坞嘀;
//錯誤碼:
//-1(未知錯誤)
//0(成功)
//1(apiKey非法)
//2(用戶取消)
//3(發(fā)送失敗)
//4(授權(quán)拒絕)
//5(微信服務(wù)器返回的不支持錯誤)
//6 (當(dāng)前設(shè)備未安裝微信客戶端)
//7 (注冊SDK失敗)
}
示例代碼
var wx = api.require('wx');
wx.shareText({
apiKey: '',
scene: 'timeline',
text: '我分享的文本'
}, function(ret, err){
if(ret.status){
alert('分享成功');
}else{
alert(err.code);
}
});
可用性
iOS系統(tǒng)惊来,Android系統(tǒng)
可提供的1.0.0及更高版本
<div id="a3"></div>
shareImage
分享圖片內(nèi)容
shareImage({params}, callback(ret, err))
params
apiKey:
- 類型:字符串
- 描述:(可選項)從微信開放平臺獲取的 appid丽涩,若不傳則從當(dāng)前 widget 的
config.xml
中讀取。
scene:
- 類型:字符串
- 描述:(可選項)場景
- 默認(rèn)值:timeline
- 取值范圍:
- session(會話)
- timeline(朋友圈)
- favorite(收藏)
thumb:
- 類型:字符串
- 描述:(可選項)縮略圖片的地址裁蚁,支持 fs://矢渊,widget:// 協(xié)議。大小不能超過32K枉证,若 contentUrl 為本地圖片地址則本參數(shù)忽略
contentUrl:
- 類型:字符串
- 描述:分享圖片的 url 地址(支持 fs://矮男、widget:// 和網(wǎng)絡(luò)路徑),長度不能超過10k室谚,若為網(wǎng)絡(luò)圖片僅當(dāng) scene 為 session 時有效毡鉴,若為本地圖片大小不能超過10M
callback(ret, err)
ret:
- 類型:JSON對象
- 內(nèi)部字段:
{
status: true //布爾型;true||false
}
err:
- 類型:JSON對象
- 內(nèi)部字段:
{
code: 0 //數(shù)字類型秒赤;
//錯誤碼:
//-1(未知錯誤)
//0(成功)
//1(apiKey非法)
//2(用戶取消)
//3(發(fā)送失斨硭病)
//4(授權(quán)拒絕)
//5(微信服務(wù)器返回的不支持錯誤)
//6 (當(dāng)前設(shè)備未安裝微信客戶端)
//7 (注冊SDK失敗)
}
示例代碼
var wx = api.require('wx');
wx.shareImage({
apiKey: '',
scene: 'timeline',
thumb: 'widget://a.jpg',
contentUrl: 'http://pic68.nipic.com/file/20150602/17961491_181130435000_2.jpg'
}, function(ret, err){
if(ret.status){
alert('分享成功');
}else{
alert(err.code);
}
});
可用性
iOS系統(tǒng),Android系統(tǒng)
可提供的1.0.0及更高版本
<div id="a4"></div>
shareMusic
分享網(wǎng)絡(luò)音頻資源
shareMusic({params}, callback(ret, err))
params
apiKey:
- 類型:字符串
- 描述:(可選項)從微信開放平臺獲取的 appid入篮,若不傳則從當(dāng)前 widget 的
config.xml
中讀取陈瘦。
scene:
- 類型:字符串
- 描述:(可選項)場景
- 默認(rèn)值:timeline
- 取值范圍:
- session(會話)
- timeline(朋友圈)
- favorite(收藏)
title:
- 類型:字符串
- 描述:(可選項)分享網(wǎng)絡(luò)音頻的標(biāo)題。
description:
- 類型:字符串
- 描述:(可選項)分享網(wǎng)絡(luò)音頻的描述潮售。
thumb:
- 類型:字符串
- 描述:(可選項)分享網(wǎng)絡(luò)音頻的縮略圖地址痊项,要求本地路徑(fs://,widget://)大小不能超過32K
contentUrl:
- 類型:字符串
- 描述:(可選項)分享網(wǎng)絡(luò)音頻的 url 地址饲做,長度不能超過10k线婚。
callback(ret, err)
ret:
- 類型:JSON對象
- 內(nèi)部字段:
{
status: true //布爾型遏弱;true||false
}
err:
- 類型:JSON對象
- 內(nèi)部字段:
{
code: 0 //數(shù)字類型盆均;
//錯誤碼:
//-1(未知錯誤)
//0(成功)
//1(apiKey非法)
//2(用戶取消)
//3(發(fā)送失敗)
//4(授權(quán)拒絕)
//5(微信服務(wù)器返回的不支持錯誤)
//6 (當(dāng)前設(shè)備未安裝微信客戶端)
//7 (注冊SDK失敗)
}
示例代碼
var wx = api.require('wx');
wx.shareMusic({
apiKey: '',
scene: 'timeline',
title: '測試標(biāo)題',
description: '分享內(nèi)容的描述',
thumb: 'widget://a.jpg',
contentUrl: 'http://docs.apicloud.com/test/m.mp3'
}, function(ret, err){
if(ret.status){
alert('分享成功');
}else{
alert(err.code);
}
});
補(bǔ)充說明
僅支持分享網(wǎng)絡(luò)音頻資源
可用性
iOS系統(tǒng)漱逸,Android系統(tǒng)
可提供的1.0.0及更高版本
<div id="a5"></div>
shareVideo
分享網(wǎng)絡(luò)視頻資源
shareVideo({params}, callback(ret, err))
params
apiKey:
- 類型:字符串
- 描述:(可選項)從微信開放平臺獲取的 appid泪姨,若不傳則從當(dāng)前 widget 的
config.xml
中讀取游沿。
scene:
- 類型:字符串
- 描述:(可選項)場景
- 默認(rèn)值:timeline
- 取值范圍:
- session(會話)
- timeline(朋友圈)
- favorite(收藏)
title:
- 類型:字符串
- 描述:(可選項)分享網(wǎng)絡(luò)視頻的標(biāo)題。
description:
- 類型:字符串
- 描述:(可選項)分享網(wǎng)絡(luò)視頻的描述肮砾。由于微信平臺限制诀黍,對不同平臺部分場景本參數(shù)無效
thumb:
- 類型:字符串
- 描述:(可選項)分享網(wǎng)絡(luò)視頻的縮略圖地址,要求本地路徑(fs://仗处,widget://)大小不能超過32K
contentUrl:
- 類型:字符串
- 描述:(可選項)分享網(wǎng)絡(luò)視頻的 url 地址眯勾,長度不能超過10k。
callback(ret, err)
ret:
- 類型:JSON對象
- 內(nèi)部字段:
{
status: true //布爾型婆誓;true||false
}
err:
- 類型:JSON對象
- 內(nèi)部字段:
{
code: 0 //數(shù)字類型吃环;
//錯誤碼:
//-1(未知錯誤)
//0(成功)
//1(apiKey非法)
//2(用戶取消)
//3(發(fā)送失敗)
//4(授權(quán)拒絕)
//5(微信服務(wù)器返回的不支持錯誤)
//6 (當(dāng)前設(shè)備未安裝微信客戶端)
//7 (注冊SDK失敗)
}
示例代碼
var wx = api.require('wx');
wx.shareVideo({
apiKey: '',
scene: 'timeline',
title: '測試標(biāo)題',
description: '分享內(nèi)容的描述',
thumb: 'widget://a.jpg',
contentUrl: 'http://resource.apicloud.com/video/apicloud.mp4'
}, function(ret, err){
if(ret.status){
alert('分享成功');
}else{
alert(err.code);
}
});
補(bǔ)充說明
僅支持分享網(wǎng)絡(luò)視頻資源
可用性
iOS系統(tǒng)洋幻,Android系統(tǒng)
可提供的1.0.0及更高版本
<div id="a6"></div>
shareWebpage
分享網(wǎng)頁
shareWebpage({params}, callback(ret, err))
params
apiKey:
- 類型:字符串
- 描述:(可選項)從微信開放平臺獲取的 appid郁轻,若不傳則從當(dāng)前 widget 的
config.xml
中讀取。
scene:
- 類型:字符串
- 描述:(可選項)場景
- 默認(rèn)值:timeline
- 取值范圍:
- session(會話)
- timeline(朋友圈)
- favorite(收藏)
title:
- 類型:字符串
- 描述:(可選項)分享網(wǎng)頁的標(biāo)題
description:
- 類型:字符串
- 描述:(可選項)分享網(wǎng)頁的描述文留。由于微信平臺限制好唯,對不同平臺部分場景本參數(shù)無效
thumb:
- 類型:字符串
- 描述:(可選項)分享網(wǎng)頁的縮略圖地址,要求本地路徑(fs://燥翅,widget://)大小不能超過32K
contentUrl:
- 類型:字符串
- 描述:(可選項)分享網(wǎng)頁的 url 地址骑篙,長度不能超過10k。
callback(ret, err)
ret:
- 類型:JSON對象
- 內(nèi)部字段:
{
status: true //布爾型森书;true||false
}
err:
- 類型:JSON對象
- 內(nèi)部字段:
{
code: 0 //數(shù)字類型替蛉;
//錯誤碼:
//-1(未知錯誤)
//0(成功)
//1(apiKey非法)
//2(用戶取消)
//3(發(fā)送失敗)
//4(授權(quán)拒絕)
//5(微信服務(wù)器返回的不支持錯誤)
//6 (當(dāng)前設(shè)備未安裝微信客戶端)
//7 (注冊SDK失敗)
}
示例代碼
var wx = api.require('wx');
wx.shareWebpage({
apiKey: '',
scene: 'timeline',
title: '測試標(biāo)題',
description: '分享內(nèi)容的描述',
thumb: 'widget://a.jpg',
contentUrl: 'http://apicloud.com'
}, function(ret, err){
if(ret.status){
alert('分享成功');
}else{
alert(err.code);
}
});
可用性
iOS系統(tǒng)拄氯,Android系統(tǒng)
可提供的1.0.0及更高版本
<div id="a7"></div>
auth
登錄授權(quán)(用于實現(xiàn)第三方登錄)
auth({params}, callback(ret, err))
params
apiKey:
- 類型:字符串
- 描述:(可選項)從微信開放平臺獲取的 appid躲查,若不傳則從當(dāng)前 widget 的
config.xml
中讀取,不傳或傳入錯誤的 apiKey译柏,則無法打開微信進(jìn)行登錄镣煮。
callback(ret, err)
ret:
- 類型:JSON對象
- 內(nèi)部字段:
{
status: true, //布爾型;true||false
code: '' //字符串類型鄙麦;getToken 接口需傳入此值典唇,用于換取 accessToken
}
err:
- 類型:JSON對象
- 內(nèi)部字段:
{
code: 0 //數(shù)字類型;
//錯誤碼:
//-1(未知錯誤)胯府,
//0(成功介衔,用戶同意)
//1 (用戶取消)
//2 (用戶拒絕授權(quán))
//3 (當(dāng)前設(shè)備未安裝微信客戶端)
}
示例代碼
var wx = api.require('wx');
wx.auth({
apiKey: ''
}, function(ret, err){
if(ret.status){
alert(JSON.stringify(ret));
}else{
alert(err.code);
}
});
可用性
iOS系統(tǒng),Android系統(tǒng)
可提供的1.0.0及更高版本
<div id="a8"></div>
getToken
獲取授權(quán) accessToken(需要登錄授權(quán)成功)
getToken({params}, callback(ret, err))
params
apiKey:
- 類型:字符串
- 描述:(可選項)從微信開放平臺獲取的 appid骂因,若不傳則從當(dāng)前 widget 的
config.xml
中讀取炎咖。
apiSecret
- 類型:字符串
- 描述:(可選項)從微信開放平臺獲取的 secret,若不傳則從當(dāng)前 widget 的
config.xml
中讀取。
code
- 類型:字符串
- 描述:通過 auth 接口授權(quán)成功后返回的 code 參數(shù)
callback(ret, err)
ret:
- 類型:JSON對象
- 內(nèi)部字段:
{
status: true, //布爾型乘盼;true||false
accessToken: '', //字符串類型升熊;接口調(diào)用憑證,傳給 getUserInfo 接口 獲取用戶信息绸栅;有效期2小時
dynamicToken: '', //字符串類型级野;當(dāng) accessToken 過期時把該值傳給 refreshToken 接口刷新 accessToken 的有效期。dynamicToken 的有效期為30天
expires: 7200, //數(shù)字類型粹胯;accessToken 有效期蓖柔,單位(秒)
openId: '' //字符串類型;授權(quán)用戶唯一標(biāo)識
}
err:
- 類型:JSON對象
- 內(nèi)部字段:
{
code: 0 //數(shù)字類型风纠;
//錯誤碼:
//-1(未知錯誤)渊抽,
//0 (成功)
//1 (apiKey值為空或非法)
//2 (apiSecret值為空或非法)
//3 (code值為空或非法)
//4 (網(wǎng)絡(luò)超時)
}
示例代碼
var wx = api.require('wx');
wx.getToken({
apiKey: '',
apiSecret: '',
code: "12346857684"
},function(ret, err){
if(ret.status){
alert(JSON.stringify(ret));
}else{
alert(err.code);
}
});
補(bǔ)充說明
此接口需要訪問網(wǎng)絡(luò),異步調(diào)用 callback 需要一段時間才能返回 accessToken
可用性
iOS系統(tǒng)议忽,Android系統(tǒng)
可提供的1.0.0及更高版本
<div id="a9"></div>
getUserInfo
獲取用戶信息(需要獲取 accessToken 成功)
getUserInfo({params}, callback(ret, err))
params
accessToken:
- 類型:字符串
- 描述:getToken 接口或 refreshToken 接口成功獲取的 accessToken 值
openId:
- 類型:字符串
- 描述:getToken 接口或 refreshToken 接口成功獲取的 openId 值
callback(ret, err)
ret:
- 類型:JSON對象
- 內(nèi)部字段:
{
status: true, //布爾型懒闷;true||false
openid: '', //字符串類型;普通用戶的標(biāo)識栈幸,對當(dāng)前開發(fā)者帳號唯一
nickname: '', //字符串類型愤估;普通用戶昵稱
sex: 1, //數(shù)字類型;普通用戶性別速址,1為男性玩焰,2為女性
headimgurl: '', //字符串類型;用戶頭像芍锚,最后一個數(shù)值代表正方形頭像大形粼啊(有0、46并炮、64默刚、96、132數(shù)值可選逃魄,0代表640*640正方形頭像)荤西,用戶沒有頭像時該項為空
privilege: [], //數(shù)組類型;用戶特權(quán)信息伍俘,如微信沃卡用戶為(chinaunicom)
unionid: '' //字符串類型邪锌;用戶統(tǒng)一標(biāo)識。針對一個微信開放平臺帳號下的應(yīng)用癌瘾,同一用戶的unionid是唯一的觅丰。
}
err:
- 類型:JSON對象
- 內(nèi)部字段:
{
code: 0 //數(shù)字類型;
//錯誤碼:
//-1(未知錯誤)妨退,
//0 (成功),
//1 (accessToken 過期),
//2 (openId非法),
//3 (openId值為空),
//4 (accessToken值為空),
//5 (accessToken非法)
//6 (網(wǎng)絡(luò)超時)
}
示例代碼
var wx = api.require('wx');
wx.getUserInfo({
accessToken: '',
openId: ''
}, function(ret,err){
if(ret.status){
alert(JSON.stringify(ret));
}else{
alert(err.code);
}
});
補(bǔ)充說明
此接口需要訪問網(wǎng)絡(luò)妇萄,異步調(diào)用 callback 需要一段時間才能返回用戶信息
可用性
iOS系統(tǒng)蜕企,Android系統(tǒng)
可提供的1.0.0及更高版本
<div id="a10"></div>
refreshToken
調(diào)用 getUserInfo 接口錯誤碼返回1時,代表 accessToken 過期嚣伐,調(diào)用此接口刷新 accessToken
refreshToken({params}, callback(ret, err))
params
apiKey:
- 類型:字符串
- 描述:(可選項)從微信開放平臺獲取的 appid糖赔,若不傳則從當(dāng)前 widget 的
config.xml
中讀取萍丐。
dynamicToken:
- 類型:字符串
- 描述:getToken 接口或 refreshToken 接口獲取的 dynamicToken 值
callback(ret, err)
ret:
- 類型:JSON對象
- 內(nèi)部字段:
{
status: true, //布爾型轩端;true||false
accessToken: '', //字符串類型;接口調(diào)用憑證逝变,傳給 getUserInfo 接口 獲取用戶信息基茵;有效期2小時
dynamicToken: '', //字符串類型;當(dāng) accessToken 過期時把該值傳給 refreshToken 接口刷新 accessToken 的有效期壳影。dynamicToken 的有效期為30天
expires: 7200, //數(shù)字類型拱层;accessToken 有效期,單位(秒)
openId: '' //字符串類型宴咧;授權(quán)用戶唯一標(biāo)識
}
err:
- 類型:JSON對象
- 內(nèi)部字段:
{
code: 0 //數(shù)字類型根灯;
//錯誤碼:
//-1(未知錯誤),
//0(成功),
//1(apiKey值為空或非法)掺栅,
//2(refreshToken值為空),
//3(refreshToken非法),
//4(網(wǎng)絡(luò)超時)
}
示例代碼
var wx = api.require('wx');
wx.refreshToken({
apiKey: '',
dynamicToken: ''
},function(ret,err){
if(ret.status){
alert(JSON.stringify(ret));
}else{
alert(err.code);
}
});
補(bǔ)充說明
此接口需要訪問網(wǎng)絡(luò)氧卧,異步調(diào)用 callback 需要一段時間才能返回 accessToken
可用性
iOS系統(tǒng)桃笙,Android系統(tǒng)
可提供的1.0.0及更高版本