uni-app转字节跳动、百度小程序手摸手实战(下)

简介: 从最早发布的微信小程序,到后来的支付宝小程序、钉钉小程序,字节跳动小程序、百度小程序、QQ小程序等,面对这么多套的代码,开发者去编写多套原生代码的成本显然非常高,使用H5的话体验又没有原生好,这时候只需编写一套代码,就能够适配多端的能力就显得尤为需要。 下面进入正题,给大家介绍下uni-app字节小程序的开发

个人中心开发遇到的问题


  • 向网页传递信息要使用头条api的bindmessage


官方说明“网页向小程序 postMessage 时,会在特定时机(小程序后退、组件销毁、分享)触发并收到消息”


// 在小程序中调起H5中的打电话功能
onmessage (e) {
  let { phoneNumber, name } = e.detail
  if(name == 'makePhoneCall'){
    uni.makePhoneCall({
      number: phoneNumber
    })
  }
}


需要注意的web-view的bindmessage属性并不是实时的


  • 真机拨打电话功能不能用


// 使用uni.makePhoneCall真机没反应
uni.makePhoneCall({ phoneNumber: '114'});


解决:改为头条api的tt开头


// 真机模拟器均可正常使用
tt.makePhoneCall({ phoneNumber: '114'});


登录开发


  • 头条授权登录效果



  • 百度授权登录效果



  • 大致思路:


1.首先获取获取服务供应商的信息


2.调用uni.getProvider获取授权code


3.获取用户的手机号(用户登录头条app的)


4.从@getphonenumber回调中获取到用户信息


5.调用授权登录服务api


6.获取token, openid等信息


// template
<view class="login-page">
  <view class="title">
    <view class="h-line"></view>
    <view class="page-title">授权登录更快捷</view>
    <view class="h-line"></view>
  </view>
  <view class="authLogin-wrapper">
    <!-- #ifdef MP-BAIDU -->
    <button type="default" open-type="getPhoneNumber" @getphonenumber="authLoginTap" class="login authLogin">百度登录更快捷</button>
    <!-- #endif -->
    <!-- #ifdef MP-TOUTIAO -->
    <button 
      type="default" 
      class="login authLogin"
      open-type="getPhoneNumber"
      @getphonenumber="onGetPhoneNumber"
    >授权手机号快捷登录</button>
    <!-- #endif -->
  </view>
</view>


// 完成渲染调用授权code方法
mounted () {
  this.getCode()
}


// 获取授权code方法
async getCode () {
  const [ errorProvider, provider ] = await uni.getProvider({ service: 'oauth' })
  if (errorProvider) {
    console.log('获取provider失败')
    return 
  }
  const [ errLogin, data ] =  await uni.login({
    provider: provider.provider[0],
    force: true
  })
  if (errLogin) {
    console.log('获取code失败')
        // 失败的操作,提示等
    return
  }
  const { code } = data
  this.code = code
},
// 头条获取到用户信息  
async onGetPhoneNumber ({ detail }) {
  const { errMsg } = detail
  // 授权失败
  if (errMsg.indexOf('auth deny') > -1) {
        // 取消授权进行手机验证码登录
    return
  } 
  try {
        // 调用服务授权接口
    const { data } = await authLogin({
      code: this.code,
      ...detail,
    })
    if (data.code === SUCCESS) {
        // 存token, openid等操作
        // 重新更新个人信息
    } else {
          // 失败的提示等
    }
  } catch (error) {
    // 登录失败异常情况处理
  }
},
// 百度获取到用户信息同理头条。。。


登录开发遇到的问题


手机验证码开发时,引入checkbox-group报错,如下图:



原因:components : { [CheckBox.name]: CheckBox } 引入组件方式不支持


发布到测试环境


以字节跳动为例子,打开字节跳动开发者工具,在工具栏找到上传,填写版本号,发布。版本号不和上一次冲突就可以。


Tips: 前面有提过,新建代码片段是在开发者工具上是没有上传按钮的,要导入项目才可以。



上传成功后,会提示进入小程序开发者平台,现在可以看到开发者的版本。




上图二维码就可以只作为本次的体检版本来扫一扫了。


发布到正式环境


  • 前置准备,在后台配置好相关线上域名



  • 切换到线上环境


// 环境相关配置
export const ENV = {
  // 开发环境
  RD: 'rd',
  // 测试环境
  TEST: 'test',
  // 沙箱环境
  BOX: 'box',
  // 线上环境
  ONLINE: 'online'
}
// 环境切换
export function getCurrentEnv() {
  return ENV.ONLINE // 正式环境切到online
}


  • 在开发者工具中点击上传


  • 去小程序开发者平台提审发布


  • 发布成功后可在头条搜索栏中搜到,抖音的话目前只有安卓平台上线了小程序功能。


结束语


以上就是uni-app转字节跳动、百度小程序的部分开发,相信大家对uni-app实战小程序已经有了初步认识,也欢迎大家指正,互相交流,共同进步


相关文章
|
2月前
|
运维 小程序 前端开发
结合圈层营销策略,打造稳定可靠的圈子app系统,圈子小程序!
圈子系统是一种社交平台,用户可按兴趣、职业等创建或加入“圈子”,进行内容发布、讨论和资源共享。开发时需考虑需求分析、技术选型(如PHP、MySQL)、页面设计、功能实现(注册、登录、发布、评论等)、测试优化及运维管理。圈层营销则通过精准化、高端化的方式传递品牌信息,增强客户归属感。圈子小程序基于微信等平台,具备跨平台、便捷性和社交性,开发过程中需明确需求、选择技术框架、设计页面并确保稳定性和流畅性。
|
4月前
|
小程序 JavaScript 前端开发
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
uni-app开发微信小程序:四大解决方案,轻松应对主包与vendor.js过大打包难题
924 1
|
29天前
|
JSON 小程序 UED
微信小程序 app.json 配置文件解析与应用
本文介绍了微信小程序中 `app.json` 配置文件的详细
133 12
|
30天前
|
存储 监控 小程序
TP6+Uni-app框架下,圈子系统小程序的快速上线开发步骤
社交圈子系统多端运营级应用,融合了推荐匹配、语音聊天、IM即时通讯、动态发布、一键约聊、同城交友、附近的人、充值提现、邀请推广等功能,为平台运营提供更多的盈利变现方式。程序源码开源,支持二次开发,根据客户不同应用场景需求,定制个性化解决方案。
54 9
|
1月前
|
小程序 IDE PHP
圈子源码如何打包生成App小程序/开发一个圈子系统软件所需要的费用体现在哪里?
将PHP源码打包成App的过程涉及多个步骤和技术选择。以圈子源码为例,首先明确需求,确定App功能和目标用户群体,并根据需求开发小程序页面,如用户注册、圈子列表等。源码准备阶段确保源码适用于小程序开发,环境配置需安装IDE(如微信开发者工具)及依赖库。最后在IDE中打包小程序并上传至管理平台,通过审核后发布。费用方面,模板开发成本较低,定制开发则更高,具体取决于需求复杂度和第三方服务费用。
73 0
|
2月前
|
开发框架 小程序 前端开发
圈子社交app前端+后端源码,uniapp社交兴趣圈子开发,框架php圈子小程序安装搭建
本文介绍了圈子社交APP的源码获取、分析与定制,PHP实现的圈子框架设计及代码编写,以及圈子小程序的安装搭建。涵盖环境配置、数据库设计、前后端开发与接口对接等内容,确保平台的安全性、性能和功能完整性。通过详细指导,帮助开发者快速搭建稳定可靠的圈子社交平台。
|
1月前
|
消息中间件 监控 小程序
电竞陪玩系统架构优化设计,陪玩app如何提升系统稳定性,陪玩小程序平台的测试与监控
电竞陪玩系统架构涵盖前端(React/Vue)、后端(Spring Boot/php)、数据库(MySQL/MongoDB)、实时通信(WebSocket)及其他组件(Redis、RabbitMQ、Nginx)。通过模块化设计、微服务架构和云计算技术优化,提升系统性能与可靠性。同时,加强全面测试、实时监控及故障管理,确保系统稳定运行。
|
29天前
|
移动开发 小程序
thinkphp+uniapp开发的多端商城系统源码/H5/小程序/APP支持DIY模板直播分销
thinkphp+uniapp开发的多端商城系统源码/H5/小程序/APP支持DIY模板直播分销
26 0
|
2月前
|
缓存 移动开发 小程序
uni-vue3-wetrip自创跨三端(H5+小程序+App)酒店预订app系统模板
vue3-uni-wetrip原创基于vite5+vue3+uniapp+pinia2+uni-ui等技术开发的仿去哪儿/携程预约酒店客房app系统。实现首页酒店展示、预订搜索、列表/详情、订单、聊天消息、我的等模块。支持编译H5+小程序+App端。
100 8
|
2月前
|
人工智能 小程序 数据处理
uni-app开发AI康复锻炼小程序,帮助肢体受伤患者康复!
近期,多家康复机构咨询AI运动识别插件是否适用于肢力运动受限患者的康复锻炼。本文介绍该插件在康复锻炼中的应用场景,包括康复运动指导、运动记录、恢复程度记录及过程监测。插件集成了人体检测、姿态识别等功能,支持微信小程序平台,使用便捷,安全可靠,帮助康复治疗更加高效精准。

热门文章

最新文章