...
Markdown |
---|
# 斐波那契 小程序 SDK 接入文档
## 目录
---
[TOC]
## 正文
---
### 1. SDK 使用步骤
#### 1.1 步骤一:小程序设置数据服务白名单
登录[微信公众平台](https://mp.weixin.qq.com)(必须是管理员帐号),进入 "开发" > "开发设置" 配置页面,在 "服务器域名 - request合法域名" 配置项中添加 **https://sdkapi.fibodata.com** 项。
#### 1.2 步骤二:引入 JS 文件
[【SDK文件地址:https://res.fibodata.com/data/fibosdk.miniapp.min.js】](https://res.fibodata.com/data/fibosdk.miniapp.min.js?v=2.0.0)
下载SDK文件并把文件放入小程序的工程目录中,并在小程序的app.js中引入。
```js
import fiboSDK form "./lib/fibosdk.miniapp.min.js" //文件路径请按自己的实际情况修改
```
#### 1.3 步骤三:通过 initApp 接口初始化
为了能够正常使用 SDK 接口,必须首先调用 initApp 接口进行初始化,initApp 接口返回值为一个Promise对象。
注意事项:
1. 请在小程序授权完成获取到用户信息后再进行 SDK 的初始化
2. [调用 wx.getUserInfo 获取用户信息时,请设置参数 lang = zh_CN](https://developers.weixin.qq.com/miniprogram/dev/api/open-api/user-info/wx.getUserInfo.html)
参数获取:
1. [如何获取 pfid, appid (登录兔展创意云获取 pfid, appid)](http://docs.tuzhanai.com/pages/viewpage.action?pageId=1934912)
2. [如何获取当前小程序打开的场景值 scene](https://developers.weixin.qq.com/miniprogram/dev/framework/app-service/scene.html)
```js
App({
onShow: function() {
var fibo = fiboSDK.initApp({
pfid: "", // (必须)斐波那契分配的平台id
appid: "", // (必须)1-50位,数字,大小写字母,下划线,短横线)表示小程序应用的id
apptype: "", // (必须)应用类型,小程序的类型,企业门户=portalminiapp、员工小站=staffminiapp、外部导入小程序=externalminiapp、医药门户=healthminiapp、医药通=healthstaffminiapp、全员营销=marketminiapp、内容营销=contentminiapp
userInfo: {}, // (非必须)如果有微信授权并能拿到用户信息,则必须填入微信公众号网页授权获取的用户信息JSON对象;支持传入用户字段管理下"已启用"的用户信息
title: "", // (非必须)当前小程序页面标题
scene: "", //(必须)当前小程序打开的场景值
identitys: [{
identityType: "", //(非必须)用户身份类型,如openid(微信openid)、 unionid(微信openid)、phone(手机号)或自定义的用户身份等,自定义的用户身份在导入前需要先在工作台创建
identityValue: "", //(非必须)用户身份的取值,如微信openid的具体取值
platform: "", //(非必须)平台类型,枚举值——contentminiapp(微信小程序)
mpid: "", //(非必须)应用id,如公众号appid、小程序appid、企业微信corpid、自建应用id等
isWeChatEcosystem: "" //(非必须)小程序SDK的initApp接口包括该参数,调用后端用户导入建档接口时,必须传入isWeChatEcosystem=true
}] // (非必须)客户多身份类型标识,可以传入多组(最多支持五组)
});
// init 接口的返回值为一个Promise对象,可以调用 then 方法实现相应的业务逻辑。
fibo.then(function() {
// 分享链接,将需要分享的链接传入fiboSDK.dealUrl()
var shareLink = fiboSDK.dealUrl(defaultShareData.path);
...
}, function(err){
});
}
});
```
### 2. SDK 接口
#### 2.1 小程序打开事件
使用场景:小程序启动或切换到前台。
**这个接口必需要调用,请在 APP 对象的 onShow 方法内调用它**
记录用户打开小程序的操作。
```js
App({
// 小程序启动或切换到前台
onShow: function() {
fiboSDK.enterApp();
}
});
```
#### 2.2 小程序退出事件
使用场景:小程序切换到后台。
**这个接口必需要调用,请在 APP 对象的 onHide 方法内调用它**
记录用户最小化或退出小程序的操作。
```js
App({
// 小程序切换到后台
onHide: function() {
fiboSDK.leaveApp();
}
});
```
#### 2.3 微信分享事件
使用场景:
1. 小程序在各个时间段的分享率
2. 传播的层级,各层级所占比例
```js
onShareAppMessage: function() {
fiboSDK.sharePage(); //推送分享操作
return {
title: "", // 分享标题
path: fiboSDK.dealUrl(sharePath), // 分享页面路径,将需要分享的链接传入fiboSDK.dealUrl()
imageUrl: "", // 分享图标
}
}
```
#### 2.4 按钮点击事件
使用场景: 通过接入按钮点击事件,可以获取到按钮的点击次数和转化率。
对于需要记录点击次数的按钮,需要在待点击的元素上绑定 click 事件并调用 **fiboSDK.btnClick\(buttonId, buttonName)**,其中参数 buttonId 为按钮识别 id,buttonName 是该按钮的名称,例如:
```js
// <button bindtap="buttonClick">登录</button>
function buttonClick() {
//登录流程...
fiboSDK.btnClick("loginBtn", "登录按钮");
}
```
如果需要统计多个不同按钮的点击次数,buttonId 必须不同。 如果两个不同的按钮传入同一个 buttonId,会算成同一个按钮的点击事件。
**为了防止 buttonId 与其他作品的冲突,导致统计混乱,建议使用 \`${appid}${buttonId}\` 的形式作为 buttonId 传入。**
#### 2.5 自定义表单推送
使用场景:推送自定义表单后,可以及时获取收集到的表单数据。
对于需要提交表单信息的小程序,可以推送表单信息,表单的格式必须是键值对。
注意事项:**表单的键和值都必须是字符串**。
```js
var form = {
姓名: "张三",
手机: "13512345678"
};
fiboSDK.saveFormInfo(form);
```
#### 2.6 处理 url 参数
使用场景:用户在分享时,处理分享链接,添加或修改 path 中 lc, sui 参数。
注意事项:在调用此方法前,一定要保证已经成功的调用 fiboSDK.initApp 接口完成了SDK的初始化。
- lc 从 0 开始(int) 层级参数
- sui 分享来源者的 viewid,由 sdk 从小程序 path 中获取
- 小程序页面 path 中请不要使用 lc、sui、cnl、cnltype、saudid、stepid、actid 来设置自定义参数;
例如:在处理作品的分享链接时
```js
var link = fiboSDK.dealUrl(sharePath);
// 设置为分享链接
// ...
```
#### 2.7 翻页事件
使用场景:小程序内切换页面时。
使用 switchPage(currentPage, targetPage, totalPage) 接口。
其中 currentPage 当前页码,targetPage 目标页码,totalPage 总页数
```js
Page({
// 如切换页面
changePage: function () {
fiboSDK.switchPage(1, 2, 10);
},
});
```
#### 2.8 关闭事件
使用场景:小程序关闭或最小化、隐藏时。
使用 leaveApp() 接口。
```js
App({
onHide() {
fiboSDK.leaveApp();
},
});
```
#### 2.9 上报手机号码
使用场景:小程序内自动获取手机号码时。
使用 getPhoneNumber({ phoneNumber, title }) 接口。
其中 phoneNumber 手机号码,title 页面标题
```js
<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber"></button>
```
```js
Page({
getPhoneNumber(e) {
// 解密 e.detail.encryptedData 数据可以得到手机号码
fiboSDK.getPhoneNumber({
phoneNumber: "13666666666",
title: "页面标题",
});
},
});
```
#### 2.10 上报自定义事件
使用场景:当系统预设的事件及事件属性不满足数据采集需求时,可以自定义采集的事件和事件属性,比如:自定义购买、加入购物车等事件,及加购事件对应的商品名称、商品价格等
注意事项:
1. 自定义事件的事件 ID 必须以c_开头,除c_外最多 30 个字符,只能是数字和字母,不区分大小写。
2. 属性 id 必须以c_开头,除c_外最多 30 个字符,只能是数字和字母,不区分大小写。事件属性的数据类型包括:文本型、数值型、布尔型、日期型
使用 pushCustomEvent(eventName, eventArgs) 接口。
其中 eventName 事件 ID,eventArgs 自定义属性对象
```js
Page({
onLoad: function () {
const eventName = "c_eventName";
const eventArgs = { c_attribute1: 123456, c_attribute2: "自定义属性" };
fiboSDK.pushCustomEvent(eventName, eventArgs);
},
});
```
|
...