iOS App跟小程序之间跳转

作者: Xuxuxudonghao | 来源:发表于2018-08-02 17:11 被阅读973次

移动应用拉起小程序是指用户可以通过接入该功能的第三方移动应用(APP)跳转至某一微信小程序的指定页面,完成服务后跳回至原移动应用(APP)。

App和小程序互相跳转:

1)App主动发起小程序卡片分享到微信,微信点击打开小程序,这时的小程序可以打开App。(同行的各位做过分享的应该对这个比较熟悉)

2)App主动发起打开小程序,这时的小程序可以打开App。

目前主要就这两种方式吧,严格来说互相跳转不太欠妥,毕竟App才是主动一方,小程序只能被动返回,类似于分享,App如果不发起分享到微信,微信是不能返回你的App的。总的来说,从 APP 跳转到小程序时,小程序会获得返回此 APP 的权限。

此功能需要前端跟iOS开发工程师一起配合,返回主要前端做处理。 小程序打开 APP 的能力 可以理解为由小程序框架在内部管理的一个状态,为 true 则可以打开 APP,为 false 则不可以打开 APP。

App跳转小程序原理及实现微信官网可查看:App拉起小程序功能

小程序返回App原理及实现微信官网可查看:小程序打开App功能

下面主要讲iOS App跳转小程序准备工作,流程配置吧。

1向微信注册你的应用程序id :请到 开发者应用登记页面 进行登记,登记并选择移动应用进行设置后,将获得AppID,可立即用于开发。但应用登记完成后还需要提交审核,只有审核通过的应用才能正式发布使用。

2.搭建开发环境

2.1 通过CocoaPods集成

[1] 在工程的Podfile里面添加以下代码:

pod ‘WechatOpenSDK' ,保存并执行pod install。

注意: 命令行下执行pod search WechatOpenSDK,如显示的WechatOpenSDK版本不是最新的,则先执行pod repo update操作更新本地repo的内容

[2] 在Xcode中,选择你的工程设置项,选中“TARGETS”一栏,在“info”标签栏的“URL type“添加“URL scheme”为你所注册的应用程序id(如下图所示)。

Xcode设置URL scheme

[3] 在Xcode中,选择你的工程设置项,选中“TARGETS”一栏,在“info”标签栏的“LSApplicationQueriesSchemes“添加weixin(如下图所示)。

[4] 在你需要使 用微信API的文件中import WXApi.h 头文件,并增加 WXApiDelegate 协议。

常见问题:

对于之前SDK放在主工程目录下,切换成CocoaPods的形式,执行pod install 之后,出现

* Use the $(inherited) flag, or

* Remove the build settings from the target.

解决方法是 把工程target中的build Setting里面PODS_ROOT的值替换成$(inherited)

Other Linker Flags中 -all_load 替换成$(inherited)

3.实现App跳转小程序

[1] 向微信注册你的id。(如下图所示,在 AppDelegate 的 didFinishLaunchingWithOptions 函数中向微信注册id)。

向微信注册你的id

[2] 重写AppDelegate的handleOpenURL和openURL方法:

重写AppDelegate的handleOpenURL和openURL方法

[3]App拉起小程序

//测试代码

[WXApi openWXApp];

iOS这里有个很坑的地方,文档中是这样写的

WXLaunchMiniProgramReq *launchMiniProgramReq = [WXLaunchMiniProgramReq object];launchMiniProgramReq.userName = userName;//拉起的小程序的username launchMiniProgramReq.path = path;//拉起小程序页面的可带参路径,不填默认拉起小程序首页launchMiniProgramReq.miniProgramType = miniProgramType;//拉起小程序的类型         

return  [WXApi sendReq:launchMiniProgramReq];

这个userName并没有具体说明是什么参数,但是仔细想想App要跳到指定App一定会有标识,或者说APP是怎么和小程序关联的呢?其实该userName就是小程序的userName,你可以登录微信公众号平台|小程序,然后在设置—>基本设置中查看,里面有个原始id,就是小程序的userName。小程序配置里的原始ID 必须是 gh_................... 形式的。

launchMiniProgramReq.userName = @“gh_xhdfjegew78”;//拉起的小程序的username 其实就是 原始ID。

这样你就将APP和小程序关联起来了。

✨✨另外APP关联小程序收银台指引:

登录微信开放平台之后,可在“管理中心-移动应用-应用详情-关联小程序信息”,

添加“wxce9be1b446012310”(举例子),为通过审核的移动应用关联小程序

还有一个问题:App跳转的小程序如何打开指定的页面呢?

这就要看另一行代码:

wxMiniObject.path = @"pages/index/index";

你需要设置一下小程序的path,这个path的页面就是你点击分享的小程序打开的页面。

[4] 小程序返回App---回调

    -(void) onResp:(BaseResp*)resp

获取结果 Resp.extMsg,前端可通过小程序返回App进行传值做业务处理。

相关文章

  • iOS App跟小程序之间跳转

    移动应用拉起小程序是指用户可以通过接入该功能的第三方移动应用(APP)跳转至某一微信小程序的指定页面,完成服务后跳...

  • 应用之间的跳转和数据传递

    iOS开发拓展篇—应用之间的跳转和数据传递 IOS APP之间跳转通讯 应用之间调用 UIApplication类...

  • APP跳转小程序,小程序跳转APP,看我就够了

    本文涉及的内容:APP跳转小程序,跳转指定页面,传参。APP分享小程序。小程序跳转APP,传参。默认已集成微信SD...

  • 微信小程序之间互相跳转

    A小程序和B小程序之间的跳转 1、两个小程序之间必须关联对方的AppId 关联方法如下:在app.json文件中加...

  • 微信小程序之间互相跳转

    A小程序和B小程序之间的跳转 1、两个小程序之间必须关联对方的AppId 关联方法如下:在app.json文件中加...

  • 小程序之社交

    主要内容:小程序调用AppApp调用小程序App分享小程序小程序自身分享功能小程序与H5交互小程序之间互相跳转绘制...

  • Router跳转

    ios APP跳转发生在这么几个地方:1.APP内部UIViewController之间。2.APP跳转其他APP...

  • iOSAPP跳转微信小程序

    前言 APP跳转微信小程序,首先先关注一下微信官方给的一些资料:移动应用拉起小程序功能、iOS开发示例、iOS资源...

  • APP 之间的跳转

    App之间跳转实现 在谈App内部的路由之前,先来谈谈在iOS系统间,不同App之间是怎么实现跳转的。 1. UR...

  • uni-app唤醒小程序

    uni-app跳转小程序 场景 在uni-app中的安卓程序里,跳转微信小程序 配置步骤 配置APP和小程序 AP...

网友评论

  • 我就是阿泽:app的bundleID也要对应吗?我修改了bundleID其他不变的情况下无法打开小程序。只能打开微信。
    Xuxuxudonghao:@池毓泽 是的,bunldID要对应

本文标题:iOS App跟小程序之间跳转

本文链接:https://www.haomeiwen.com/subject/cycsvftx.html