iOS与小程序互相调用

近段时间因工作需要,研究了一下app、小程序相互调用的过程。在实践中渐渐体会到原生与前端交互的美好体验,特此记录下来。(注:Demo在文章结尾)

一 实践前的准备

首先在微信开放平台对应的app下,有这么一句话 “APP跳转小程序 用户授权后,开发者将获得从移动应用点击跳转关联小程序,且回到原移动应用的权限”,据我查阅所得,有以下两种情况:
1 App与小程序在同一个开发者账号下
2 App与小程序不再同一个开发者账号,这时就需要将App关联小程序

二 实践出真知

1)App调起小程序
这个步骤比较简单,直接使用微信开发文档提供的示例方法就可以了。

let req = WXLaunchMiniProgramReq.object()
req?.userName = MiniProgramID
req?.path = path
req?.miniProgramType = .test
WXApi.send(req)

这里要注意的有两点:

  1. userName是小程序的原始ID
  2. path是拉起小程序页面的路径,不填默认拉起小程序首页

2)小程序打开App
这里有两个场景可以使得小程序具备打开App的能力,一是小程序从 APP 分享消息卡片的场景打开,二是从 APP 打开的场景打开。

关于第二个场景我有段解释:此功能需要用户主动触发才能打开 APP,所以不由 API 来调用,需要用 open-type 的值设置为 launchApp 的 button 组件的点击来触发。

第一个场景不用多说,App分享小程序类型的消息到微信。
第二个场景的话,需要在小程序源代码里添加这样一段代码:

    <!-- 打开app -->
  <view class="uploader">
    <button open-type="launchApp" app-parameter="WeChat" binderror="launchAppError">打开app</button>
  </view>

也就是我在上面说到的,用 open-type 的值设置为 launchApp 的 button 组件。

既然小程序可以打开App,那么自然也有回调让App来处理相应结果。代码如下:

func onResp(_ resp: BaseResp!) {
	if let miniProgram = resp as? WXLaunchMiniProgramResp {
       //extMsg是小程序的app-parameter字段对应的参数,在这里可以接收
       let _ = miniProgram.extMsg
    }
 }

这里的extMsg所取到的值就是我们在小程序源代码中添加的app-parameter=“WeChat”,打印一下extMsg,看看它是不是就是WeChat。

结尾

APP与小程序的相互调用并不复杂,微信都已经帮我们准备好了相应的素材,我们只需按照文档步骤基本不会有问题。

对我来说每一次Get到一个新的技能都是一件很振奋人心的事,我也会在以后多做文档记录,利人利己。

注:App与小程序互相调用的Demo地址:LaunchMiniProgram

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NickZZJ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值