资源位SDK(微信小程序)

参考代码:https://github.com/growingio/minp-marketing-demo

集成小程序采集sdk

首先按照官方文档 微信小程序SDK 集成文档,集成小程序采集sdk。集成成功后,可以在微信小程序开发者工具的控制台中看到打印输出 init growingio...。如已集成过小程序采集sdk,此步跳过

查看sdk版本

正确集成小程序sdk后,可以通过在控制台输入 gioGlobal.vdsConfig.sdkVer 查看sdk版本,要使用Banner功能,请确保版本在 3.2.0 之上。

集成小程序Banner

小程序Banner分两种集成方式:

  • 模版渲染

  • 自渲染

bannerKey来源于网页配置

一、模板渲染

适合本身没有Banner组件或者希望全部使用GrowingIO触达Banner的场景。 此种方式集成,sdk提供小程序组件供调用,支持几乎所有小程序swiper属性。

集成方式

原生组件

  1. app.json文件中的usingComponents属性中,添加gio-banner组件

    "usingComponents": {
    "gio-banner": "utils/es/components/gio-banner/gio-banner"
    },
  2. 在需要集成的page页面的wxml文件里,引入gio-banner组件。

3.7.3 版本支持跳转H5 和 第三方小程序,需要添加标签属性h5-page和 env-version

// 例:pages/index/index.wxml
<gio-banner bannerKey='xxx' h5-page="/pages/webview/index" env-version="release"/>
<View>Welcome to GrowingIO</View>

H5页面跳转

小程序是无法直接跳转到浏览器的,要实现h5页面的跳转就需要在小程序内提供一个带有webview的承接页来展示h5页面,该页面要用户提供并配置,弹窗和资源位提供新的标签属性h5-page

属性

类型

默认值

说明

h5-page

String

/pages/h5/h5

配置h5页面的承接页

如承接页为: /pages/webview/index,应该如下配置<gio-banner h5-page="/pages/webview/index" />

承接页示例如下:

 // pages/webview/index.js
 Page({
   /**
    * 生命周期函数--监听页面显示
    */
   onShow: function () {
     this.setData({
       url: this.options.url
     })
   }
 })

 // pages/webview/index.wxml
 <view>
   <web-view src="{{url}}"></web-view>
 </view>

注:承接页必须不为tabBar页面。

三方小程序跳转

属性

类型

默认值

说明

env-version

String

release

三方小程序的版本,仅开发测试使用支持:develop, trial, release

Taro

  1. 在需要集成的page页面的config配置项里通过usingComponents属性引入组件

  2. render方法中使用组件。

// 例:pages/index/index.js
export default class Index extends Component {
  config = {
    navigationBarTitleText: 'GrowingIO',
    usingComponents: {
      'gio-banner': 'utils/es/components/gio-banner/gio-banner'
    }
  }
  
  ...
  
  render() {
    return (
      <View>
        <gio-banner bannerKey='xxx' ...props />
        <View>Welcome to GrowingIO</View>
      </View>
    )
  }
}

mpvue

  1. 将sdk文件包解压后放到/src/utils

  2. 将其中的components目录移动到/static

  3. /src/pages/下具体页面的main.json中或/src/app.json中使用usingComponents引入组件

{
  "usingComponents": {
    "gio-banner": "../static/components/gio-banner/gio-banner"
  }
}

4.在具体渲染组件的template中使用,bannerKey来自网页生成,值唯一

<template>
<div>
 <gio-banner bannerKey='xxx' />
</div>
</template>

wepy应用(2.0.0以上版本)

在每一个page页面的wpy文件里,引入gio-banner组件(原则上只需要在需要banner的页面引入组件)

// 例:pages/index.wpy

// template
<template>
    <gio-banner bannerKey='xxx' />
    // ...more
</template>

<config>
// usingComponents
"usingComponents": {
  "gio-banner": "../utils/gio-minp/components/gio-banner/gio-banner"
}
</config>

属性参考

属性

类型

含义

bannerKey

String

bannerKey,必填,唯一值

placeholderDrawable

String

默认占位图,建议使用本地图片

errorReplaceDrawable

String

请求出错时的占位图,建议使用本地图片

indicatorDots

Boolean

是否显示面板指示点,默认true

indicatorColor

String

指示点颜色,默认 'rgba(0, 0, 0, .3)'

indicatorActiveColor

String

当前选中的指示点颜色,默认 '#000'

autoplay

Boolean

是否自动切换,默认true

interval

Number

自动切换时间间隔,默认5000ms

duration

Number

滑动动画时长,默认500ms

circular

Boolean

是否采用衔接滑动,默认true

vertical

Boolean

滑动方向是否为纵向,默认false

previousMargin

String

前边距,可用于露出前一项的一小部分,默认 '0px'

nextMargin

String

后边距,可用于露出后一项的一小部分,默认 '0px'

easingFunction

String

动画类型,默认 'default',剩余值参考小程序swiper组件

模板渲染容错处理:

假如没有配置资源位banner也没有设置默认占位图,则隐藏banner区域 假如服务器出错, 会先取缓存里banner的数据,如果没有缓存,会加载用户配置的错误占位图errorReplaceDrawable,如果没有设置错误占位图,会显示空白,所以建议设置好错误占位图。 如果请求图片加载慢的话,可以设置默认占位图placeholderDrawable,作为中间过程显示的图片。

二、自渲染

仅提供数据,适合本身有banner组件,希望在已有的banner组件上添加触达banenr的场景。

集成方式

  1. 在需要触达banner的页面或者全局usingComponents上,引入触达banner。

    "usingComponents": {
    "gio-banner": "utils/es/components/gio-banner/gio-banner"
    },
  2. 引入成功后,会在gioGlobal上注册一个函数,接着可以通过调用此函数来异步获取触达banner信息。

    gioGlobal.getBannerMessages(bannerKey).then(data => {
    console.log('触达banner数据', data);
    })

request

后台配置的bannerKey,必填。

response详情

属性

含义

key

bannerKey

name

banner的名称

messages

banner详情

messages详情

属性

含义

id

单张banner的Id

index

单张banner的在后台配置显示的序号

name

单张banner的名称

imageUrl

单张banner的url

summary

单张banner的summary,暂无

onShow

单张banner的显示事件,需要手动调用,调一次会上报一次显示次数

onClick

单张banner的点击事件,需要手动调用,调一次会上报一次点击次数并执行后台配置的操作

Last updated

Was this helpful?