欧美三级国产三级日韩三级_亚洲熟妇丰满大屁股熟妇_欧美亚洲成人一区二区三区_国产精品久久久久久模特

微信小程序下獲取公眾號openId - 新聞資訊 - 云南小程序開發(fā)|云南軟件開發(fā)|云南網(wǎng)站建設(shè)-昆明葵宇信息科技有限公司

159-8711-8523

云南網(wǎng)建設(shè)/小程序開發(fā)/軟件開發(fā)

知識

不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價值,我們在追求其視覺表現(xiàn)的同時,更側(cè)重于功能的便捷,營銷的便利,運(yùn)營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏壧峁┍憬莸闹С郑?

您當(dāng)前位置>首頁 » 新聞資訊 » 公眾號相關(guān) >

微信小程序下獲取公眾號openId

發(fā)表時間:2020-11-5

發(fā)布人:葵宇科技

瀏覽次數(shù):248

微信小程序下獲取公眾號openId

一、為什么我們需要在小程序下面獲取公眾號的openId呢?
微信公眾號和微信小程序我們一般都會開發(fā),有一種場景我們經(jīng)常會遇到,公眾號的消息推送以較成熟,我們希望把小程序那邊的用戶也同步到公眾號這邊,而且最好采用靜默方式,所以我們有這種需求。

二、方案

從目前來講,微信沒有給我們提供可直接在小程序中調(diào)用公眾號的接口,當(dāng)然大家會想到union機(jī)制,當(dāng)然這個還是有一定限制的,需要用戶主動觸發(fā)。那么我們有沒有其他可選方案呢,當(dāng)然我們會想到是不是可以通過向程序訪問公眾號h5的頁面呢,這個時候我們會想到webview組件。
在這里插入圖片描述

通過webview加載 公眾號的一個h5頁面,h5頁面只做公眾號授權(quán)處理,例如

小程序

constructor(props) {
    super(props)
    this.state = {
      num: 0
    }
  }
  handleLoad (e) {
    let { num } = this.state;
    this.setState({num: ++num}, ()=>{
      if(num==2){
        const url = e.detail.src;
        let code = getQueryString(url, 'code')
        Taro.redirectTo({
            url: `/pages/index/index?code=${code}`
        })
      }
    })      
  }

  handleError () {
    Taro.redirectTo({
        url: `/pages/index/index`
    })
  }
  
  render () {
    return (
      <WebView src='https://xxxx.xxxx.com/#/pages/get-openId/index'>={ this.handleLoad }>={ this.handleError } />
    )
  }

公眾號

 constructor(props) {
    super(props);
    this.state = {
    };
  }
  componentDidMount() {
    Taro.showLoading({ title: '加載中...', mask: true })
    let APP_ID = '000000000000'
    let urlParams = getAuthUrl(window.location.href, APP_ID)
    let code = ''
    if(urlParams){
      code = getQueryString('code')
    }
    if(!code){
      window.location.href = urlParams
      return
    }
    setTimeout(() => {
      Taro.hideLoading()
    }, 6000);
  }

  render() {
    return (
      <View className='loading-container'>
      </View>
    )
  }
const getAuthUrl = (appId, currentPageUrl ) => {
  const authUrl = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + appId + "&redirect_uri="+ encodeURIComponent(currentPageUrl) +"&response_type=code&scope=snsapi_base&state=TOKEN&connect_redirect=1#wechat_redirect"
  return authUrl
}

小程序加載的頁面會請求兩次, 這是和公眾號授權(quán)機(jī)制有關(guān),我們只需要在頁面加載的第二次從detial中拿到code就可以了。

相關(guān)案例查看更多