1. 程式人生 > >微信小程式從使用到分析快速解析

微信小程式從使用到分析快速解析

一、微信小程式簡介

微信小程式是騰訊微信團隊推出的基於微信生態的應用號,是一種跨平臺,媲美原生App操作體驗的web應用,它擁有,即用即走、離線儲存、跨平臺等特點。

1、系統架構

小程式大概的系統架構如下圖所示:
此處輸入圖片的描述

2、Page Frame:

Web應用在微信下實現如原生應用般順滑的體驗,主要靠Page Frame,Native會預先載入一個WebView,當開啟小程式落地頁面的時候,就直接通過下載CDN上的資源以及資料渲染頁面,請求資料則區域性重新整理,頁面返回直接history彈棧,退出小程式,View狀態並不會銷燬。

3、MVVM

微信小程式的前端架構設計,以及開發模式,充分參考了Vue、React這一類MV*的前端開發框架,我們簡單舉幾個例子:
比如通過{{data-bind}}進行資料雙像繫結,就像極了Vue的設計風格;
再比如一些標籤語法糖,列表迴圈:

<!--wxml-->
<view wx:for="{{array}}"> {{item}} </view>

相信寫過AngularJS 和 Vue的同學都不會陌生;
再比如,事件繫結:

    <view bindtap="add"> {{count}} </view>
Page({
    data: {
      count: 1
    },
    add: function(e) {
        this.setData({

 data: this.data.count + 1
        })
    }
})

如果你開發過React,那麼其裡面有一個setState的方法可以用來改變狀態的值,這裡的setDate也是一樣的,通過繫結的add方法來改變檢視中count的值。
模組化思想這些都是現在前端框架必備基礎。

4、元件

微信小程式框架與其他開發框架不同,比如vue react都是隻管安心做好框架,UE層面的套件庫都由各路使用者來貢獻,比如餓了麼的element,螞蟻的ant-design,微信小程式直接提供了在小程式開發過程中常用的UE元件,小程式的元件遵循web component標準,並使用polymer框架實現web component。
檢視容器、表單元件、導航、媒體元件、地圖元件、畫布這些基礎的元素級元件
分享、登入、支付這些功能性元件

5、API

在appservice層,微信提供了N多API,其實就是jsbridge,用於提供js訪問native的能力和通道,像:

  • wx.storage訪問儲存相關介面
  • wx.file 檔案操作相關api
  • wx.systeminfo獲取機型
  • wx.network 獲取聯網狀態

還有更多媒體、介面的操作api不一一列舉,可以直接參考文件-開發-API部分

二、利用分析工具透視微信小程式

當簡單瞭解了小程式是什麼之後,我們摸索著做了一個小程式的demo,利用豆瓣圖書的api(做完了才發現git上已經有無數這樣的demo),成功執行小程式之後,我們又有了對小程式做資料透視的想法,官方的資料分析模組有提供,但及其簡單,只是基礎的運營指標+自定義事件(自定義事件功能還是蠻屌的,實現了無埋點),業界搜尋了一下,有微信小程式分析相關的平臺or產品並不多,talkding data,hotapp,騰訊移動分析(MTA),本著對大公司的信賴,選擇了MTA,接下來就針對MTA的sdk程式碼和功能,來看看如何利用資料分析工具運營小程式。

1、資料分析SDK原始碼解讀:

整個SDK對外暴露了三個物件App、Page、Event

mta.App.init({config_obj});

做統計資訊的初始化,在應用入口app.js App.onLaunch方法中呼叫,很顯然是做一些統計資訊初始化的工作,其中除了常規的統計ID的初始化,我們發現有對使用分析統計功能的開關設計,通過反混淆原始碼發現:
以統計分享為例:

var a = getCurrentPages()[getCurrentPages().length - 1];
MTA_CONFIG.stat_share_app && a.onShareAppMessage && !
            function() {
                var b = a.onShareAppMessage;
                a.onShareAppMessage = function() {
                    MTA.Event.stat(MTA_CONFIG.prefix + "shareapp", {
                        url: a.__route__
                    });
                    return b.call(this, arguments)
                }
            } ()

獲取當前頁面的物件,過載頁面物件的share event對應的handler方法,在執行框架方法之前,做統計平臺的event統計上報,是個不錯的好方法。

Page.init()

具體頁面的統計介面,可以看到,頁面的訪問統計是掛在框架對外暴露的Page.onShow的方法,onShow方法會在載入,返回,後臺導前臺等頁面展示的任何時機都上報,所以統計口徑可能與官方有差異

Event.stat(eventid, {params_obj})

自定義事件的上報介面,使用者可以在管理臺配置好自定義事件,拿到合法的統計id和事件id後,在任何需要統計的事件場景下進行統計
其他內部實現,多是利用框架提供的system/network等介面來上報環境、網路等資訊

2、實時重新整理的透視資料

MTA提供了訪問次數、訪問人數、應用開啟次數等基礎指標在各個分析模型下的組合、計算和應用,並且做到了幾乎全站分析模型的實時化:
此處輸入圖片的描述

真正做到了所見即所得的運營資料

3、環境分析,讓微信小程式開發者更瞭解執行環境

MTA提供了地域、運營商那個、機型、網路、作業系統、平臺等一系列使用者客戶端環境分析的報表,可以很好的幫助開發者、運營者瞭解自己的小程式都執行在什麼的宿主環境中,其中地域分析提供了各省份及其附屬市區的覆蓋資料,這些應該都是拿的使用者ip,然後匹配騰訊公共的ip庫做的對映:
此處輸入圖片的描述

而微信版本、網路連線型別、機型、作業系統等這些都是利用微信的getSysteminfo getNetworkType等介面取值上報進行了彙總、統計:
此處輸入圖片的描述

4、使用分析,特定場景下的使用者行為分析

以上兩個功能都是不需要使用者參與的,MTA自動幫大家採集和計算的,而使用分析則不是,比如我們需要統計有多少使用者分享了我的小程式、有多少使用者觸發了頁面的下拉重新整理等動作,如此精細化的使用者行為分析,MTA這邊也提供了配置化的上報介面:

在mta.App.init({
        "statPullDownFresh":true, 
      "statShareApp":true, 
          "statReachBottom":true
})

前提是已經獲得並配置了合法的click_id
這樣平臺就會採集這樣的使用者行為資料,並進行計算
此處輸入圖片的描述

舉例分享分析,還提供了具體的分享頁面列表,讓開發者瞭解自己的小程式哪些頁面的內容質量更高。

5、自定義分析,給使用者行為洞察更多的靈活性

有很多場景,比如我想統計demo小程式中,搜尋圖書這個按鈕的點選量(搜尋圖書這個事件的事件發生次數),並且我想知道每次使用者都輸入了什麼值來搜尋圖書,我用MTA的自定義事件,並配置了對應的事件id和引數

mta.Event.stat('btn_search',{search:'使用者輸入的值'})

此處輸入圖片的描述

6、實時訪客軌跡,實時透視使用者行為的鷹眼

這個功能是我覺著幫助透視小程式運營資料很有特色的一個功能,可以幫助開發者實時的檢視當前應用的活躍使用者的行為軌跡,並且提供了當前使用者的一些基本屬性:第一次訪問小程式的時間,使用者型別,地域,受訪頁面url等,很清晰,有種坐在monitor屏幕後面窺視使用者的感覺:
此處輸入圖片的描述

目前利用諸如MTA這樣的小程式資料分析平臺來做小程式的基礎和精細化運營還是很不錯的,期待有更多使用者洞察的功能以及對小程式開發者和運營者更有價值的功能推出。

相關推薦

程式使用到分析快速解析

一、微信小程式簡介 微信小程式是騰訊微信團隊推出的基於微信生態的應用號,是一種跨平臺,媲美原生App操作體驗的web應用,它擁有,即用即走、離線儲存、跨平臺等特點。 1、系統架構 小程式大概的系統架構如下圖所示: 2、Page Frame:

程式彈框效果解析

先上程式碼 wxml部分: <view class='top' bindtap='powerDrawer' data-statu="open" data-num='300'> <text>向上彈起</text> </view> <

程式開始到正式上線流程

這段時間完成了兩個上線的微信小程式,從前端到後臺總結一下 1.註冊微信公眾平臺賬號 https://mp.weixin.qq.com/ (只是想玩玩的不註冊也行,直接下載微信開發工具生成測試AppID就行) 之後開發要用到的AppID、AppSecret都在 設定 - 開發設定 目錄下

程式子頁面返回父頁面實現資料的區域性重新整理

問題描述 A頁面有一個儲存欄位的物件陣列items,從A頁面跳轉到B頁面,B頁面自定義欄位,並新增到items中。當返回A頁面時,顯示items的部分能夠區域性重新整理 items:[{name: '0', value: '姓名', checked: true, isNecessar

程式0基礎快速入門(史上最全!!!)

產品定位及功能介紹 微信小程式是一種全新的連線使用者與服務的方式,它可以在微信內被便捷地獲取和傳播,同時具有出色的使用體驗。 小程式註冊 註冊小程式帳號 在微信公眾平臺官網首頁(mp.weixin.qq.com)點選右上角的“立即註冊”按鈕。 選擇註冊的帳號型別 選擇“

程式入門第一講 java&&jFinal 程式登陸功能實現以及獲取唯一標識openid和unionid

在我以前的一篇部落格中講到了獲取openid的方法,這裡就不做過多的講解java獲取微信小程式openid。這裡主要講解微信小程式登陸的實現和獲取unionid。需要提醒的是我後端框架使用的是jFinal,傳值方式跟spring的那套有些許的差別。 1、首先要知道微信小程式的開發本身就是基於

程式 quick start專案解析

很有意思的是微信自己的語言竟然是抄襲,wxml相當於html,把ht換成了wx  ,wxss相當於css,把c換成了wx而已。 pages是存放網頁的地方。 utils是微信小程式的js工具類 app.js是小程式的指令碼程式碼 app.json是小程式配置檔案

程式開發-app.json解析

App.json檔案解析 Page屬性: 接受一個數組,每一項都是字串,來指定小程式由哪些頁面組成。每一項代表對應頁面的【路徑+檔名】資訊,陣列的第一項代表小程式的初始頁面。小程式中新增/減少頁面,都需要對 pages 陣列進行修改。 檔名不需要寫檔案字尾,因為框架會自動去尋找路徑.json,.js,.

程式-零開始新建一個專案

新建時,不勾選【建立普通快捷啟動模板】 在根目錄下建立3個應用程式檔案 app.json   app.js   app.wxss 在根目錄下建立pages檔案, 在pages檔案下建立welcome資料夾並建立四個頁面檔案 welcome.js

程式:使用wxParse解析HTML

      1、下載 wxParse ,放到utils目錄下       2、在JS頁面引入: import WxParse from '../../utils/wxParse/wxParse' Page({ data:{ contentHTML:'' //

程式零開始開發步驟(七)引入外部js 檔案

            上一章講到小程式頁面的四種常見的跳轉的方法,這一章寫如何引入一個外部的js檔案,既utils資料夾的用處,其實步驟很簡單:1:準備好外部想要引入的外部檔案,命名為util.js,並且填充固定的檔案內容(一般是固定的庫)圖片.png2:開啟util.js ,繼續填寫重要內容將要使用的方法

程式零開始開發步驟(八)引入框架WeUI

            首先來看下WeUI的官方介紹:WeUI 是一套同微信原生視覺體驗一致的基礎樣式庫,由微信官方設計團隊為微信內網頁和微信小程式量身設計,令使用者的使用感知更加統一。在微信小程式的開發過程中,涉及到的前端複雜的樣式介面的問題,就需要使用個UI框架,這樣可以省去以後很多麻煩。WeUI作為一個

程式-零開始製作一個跑步程式

一、準備工作 1、註冊一個小程式賬號,得用一個沒註冊過公眾號的郵箱註冊。 2、註冊過程中需要很多認證,有很多認證,比較繁瑣,如果暫時只是開發測試,不進行提審、釋出的話,只要完成營業執照號填寫就可以了,不需要完成微信認證。 3、註冊完賬號,登入,在主頁面左邊列表中點選設定,然後再

程式子頁面退回父頁面時的資料傳遞

小編推薦:Fundebug專注於JavaScript、微信小程式、微信小遊戲,Node.js和Java實時BUG監控。真的是一個很好用的bug監控費服務,眾多大佬公司都在使用。 我們知道,在微信小程式中,從一個頁面轉到另一個頁面,一般情況下可以通過navigate或redirect

騰訊移動分析(MTA)助力程式資料分析

導語微信小程式預計於1月9日正式上線,騰訊移動分析MTA已上線微信小程式分析服務,歡迎訪問MTA官網體驗試用。 什麼是微信小程式?        小程式是一種不需要下載安裝即可使用的應用,它實現了應用“觸手可及”的夢想,使用者掃一掃或者搜一下即可開啟應用。也體現了“用完即走

程式架構分析 (上)

相信不少上手試用了微信小程式開發者工具的開發者都會對其實現有些疑惑, 本文試圖對其架構模型進行一些解析。 本文分為以下幾個部分: 小程式除錯技巧小程式主要模組構成小程式模組間通訊設計理念分析 小程式除錯技巧 微信開發者工具預設禁用了右鍵開啟除錯面板功能,我們可以修改開

程式0-1(一)flex佈局之理論

目錄 這篇文章主要介紹了Flex佈局,參考了這篇文章 搭建UI介面 對於iOS開發者來說,UI佈局可以使用座標(frame),也可以使用自動佈局。對於微信小程式來說,建議使用Flex佈局。 通過上一篇的學習,我們知道了.wxss是設

程式-模板訊息全面解析加例項

一.模板訊息是什麼? 模板訊息是微信為小程式提供的訊息推送能力。小程式可以向用戶傳送重要的訊息通知,類似於App的推送通知。 二.限制 相對於App的推送通知,模板訊息有很多限制,這是因為微信放置開發者濫用推送能力騷擾使用者。 限制1.固定格式,模板

程式開發分析總結

本文主要記錄一下初次開發小程式一些注意事項,小程式開發語言,對小程式的稽核要求,小程式的特點,開發特點,後面會再寫下是否有三方好用的工具,及開發中遇到的js,html,css 相關的問題及解決方法。畢竟借小程式寫js,html,css,感謝小程式,讓我深深

程式零開始開發步驟(二)

上一章註冊完小程式,新增新建的專案,大致的準備開發已經完成,本章要分享的是要建立一個簡單的頁面了,建立小程式頁面的具體幾個步驟:1. 在pages 中新增一個目錄選中page,右擊滑鼠,從硬碟開啟,開啟硬碟檔案之後,新建一個資料夾test(或者點選+號,逐個新增目錄,新增目錄下面所需要