前言

从苹果官方来看,小程序新增了两个功能:

1. 支持打开移动应用

2. 标题栏区域开放自定义

针对第二个功能,就是开发者可以自定义小程序菜单栏的颜色风格,根据需求,对小程序菜单外的标题区域进行自定义,比如设置标题区域的颜色。这里主要介绍一下支持打开移动应用的功能。

支持打开移动应用

乍一看其实有点标题党的行为,支持打开移动应用?

让我想到的是我可以用小程序打开任何移动应用?(答案是不能)

那我是不是可以打开自己的App?(答案是有限制性地打开)

是不是可以打开系统自带的浏览器?(答案是不能)

是不是可以打开第三方的移动应用呢?(答案也是不能)

其实,小程序打开移动应用有一条硬性要求:从移动应用分享至小程序的页面,用户访问时支持打开来源应用。接下来进一步解读一下这条要求。

大部分程序都有微信分享功能,我们常做的就是将一个图片、一段文字亦或是一个URL链接进行分享,可以分享给好友(包括群)、朋友圈或者是添加到个人收藏,如下:

我们还可以分享小程序,如图:

上面是一个抢票软件(智行)分享到微信的一个小程序,好友可以点击小程序帮忙加速。按照官方文章的说法,分享到微信的小程序里面如果有一个按钮,实现如下:

这里小程序给出一个场景值概念,只有场景值为1036(还有个状态值true或false,它决定是否能够打开APP。场景值为1036,状态值为true)的小程序,才能够打开源APP,即小程序不能打开任何App,只能跳回分享小程序卡片的APP。官方文档也对这个标识做了解释:在小程序的生命周期内,这个状态的初始值为 false,之后会随着小程序的每次打开(无论是启动还是切到前台)而改变:当小程序从 1036(App 分享消息卡片) 打开时,该状态置为 true。

当小程序从 1089(微信聊天主界面下拉)或 1090(长按小程序右上角菜单唤出最近使用历史)的场景打开时,该状态不变,即保持上一次打开小程序时该状态的值。

当小程序从非 1036/1089/1090 的场景打开,该状态置为 false。

针对第二条,1089和1090那个,我的理解是小程序类似于移动APP,它并没有关闭,而是在后台,所以1089和1090打开小程序只是把小程序唤到前台,所以小程序状态不变。状态如果为true,也可以打开移动APP。 以上便是对小程序打开移动应用的介绍,接下来看一下具体代码实现。

代码实现分享小程序打开移动应用(iOS版本,Android类似)

首先要做的就是新建一个工程,然后集成微信分享,具体如何集成可以参见官网集成文档,集成之后,在页面添加一个按钮,触发实现如下:

如果你想要在移动APP内分享小程序,你必须在该APP所在的微信开放平台账号下绑定微信小程序,这样才可以在APP中实现小程序分享。这就是官方所说的APP和小程序属于同一微信开放平台账号。

那么APP怎么知道分享哪个小程序的? 或者说APP是怎么和小程序关联的呢?

这就要看上面的那段代码(前提是你把小程序和APP放到了同一开放平台账号下),其中有一行:

pages所指的就是页面,例如上图的pages文件夹包含了detail和index和logs三个页面,其中:

index:指代的是信用卡列表页。

detail:指代的是点击列表某个item进入的详情页。

logs:日志页面

所以如果你想跳转到详情页,那么你在设置wxMiniObject的path时就应该写成“pages/detail/detail”。这样就实现了点击分享的小程序进入指定的页面了(如果页面需要参数你也要在分享时传过去)。wxml:相当于html

wxss:相当于css

这里其实是微信小程序自己定义了后缀。

这个时候你分享的小程序场景值为1036,且状态为true,如果此时你小程序里面有open-type为“launchApp”的button,点击button你就会跳回你的移动APP啦。如果想给APP回传内容,可以设置app-parameter。就像这个小按钮:1打开APP

到此,我想你应该大概了解小程序支持打开移动应用到底是怎么回事了。

总结

小程序并不是支持打开所有移动APP,就算是同一个微信开放平台账号下面的移动APP和小程序,小程序也不一定可以打开,具体还要看场景。

展望

小程序支持跳转移动APP是很大的进步,在小程序以后的进一步完善中,它应该会朝着APP直接打开小程序方向迈进,而不仅仅是通过分享打开小程序。未来我们也许会实现点击移动APP里面的某个按钮直接打开某个小程序,然后在小程序操作完成之后再次返回到移动APP。(例如微信支付,可以从移动APP跳转到小程序进行微信支付,支付成功后直接返回移动APP)

dakai微信小程序 ios_【iOS】微信小程序打开APP到底是怎么回事?相关推荐

  1. 微信扫描二维码调用手机默认浏览器打开APP(APK)应用链接下载

    很多朋友问我怎么解决微信内点击链接或扫描二维码可以直接跳出微信在外部浏览器打开网页链接,其实这并不难,只要我们实现微信跳转功能即可.下面给大家介绍这个功能 ? 功能目的 生成微信跳转链接,实现微信内置 ...

  2. IOS 如何通过浏览器打开App

    前言: 随着App的开发,花样也越来越多了.现如今,是一个商家猖獗的时代,处处都是他们投放的广告.广泛的推广他们的产品或者服务,他们就在网上投放大量的网页,其中网页里面有一些特殊或者炫彩的按钮,或者文 ...

  3. ios微信支付失败 php,iOS 微信支付疑难杂症。

    哈喽,大家好,感谢您来阅读我的文章,作为iOS开发者,集成各类支付是家常便饭之事,今天我来给大家推荐几个不常见的微信支付问题. 最近,在项目的反馈版块中,收到了这么一位APP用户的反馈,他在使用我们家 ...

  4. iOS微信分享服务器设置,iOS 微信分享 universalLink

    1.注册微信 APPID [WXApi registerApp:WX_AppId universalLink:@"https://xxx.yioks.cn/yioks1/"]; 2 ...

  5. php苹果h5微信支付白屏,iOS 微信h5支付 返回APP显示支付结果

    作者:QuinceyYang (YangQing) 一.解决UIWebView页面不能调起微信支付 - (BOOL)webView:(UIWebView *)webView shouldStartLo ...

  6. 微信不再提供小程序打开App?借助H5为App引流的方式你必须知道!

    简介: 2021年5月14日App开发者领域发布了一条重要消息:微信开放平台为了提升用户体验,将于2021年5月20日(后来延期到2021年5月27日)起不再提供"小程序打开App技术服务& ...

  7. iOS微信授权登录集成

    iOS微信授权登录集成 iOS微信授权登录集成,具体的过程参考官方的文档 微信集成官方Demo地址: iOS资源下载 不错的文章: iOS微信登录集成 iOS 微信第三方登录的简单实现 准备工作 1. ...

  8. ios微信双开,iOS微信分身免越狱方法来了!

    在现在的当下很多人一个微信已经不能满足日常了,尤其是使用iPhone的用户,iPhone手机都知道,由于系统限制,微信只能一个,但是通过其他方法还是可以再次分身出来一个的! 现在微信也提供最方便的切换 ...

  9. 如何仿写iOS微信打飞机

    仿写打飞机学习总结 一.Android微信打飞机与iOS微信打飞机的区别 1.Android打飞机,同一时间屏幕上不止存在一个子弹,可能有三颗或更多,而iOS上的打飞机任意时间屏幕上至多存在一个子弹. ...

最新文章

  1. python apktool_Python使用ApkTool和子进程反编译APK
  2. 从json到抽取关键词
  3. 一个浏览器插件,测试xpath的工具
  4. 深度学习(二十三)Maxout网络学习-ICML 2013
  5. [Ogre][地形]OgreTerrain的实现原理分析
  6. 用cmd来向mysql导入sql文件
  7. 如何学习离散数学和在计算机科学中应用
  8. Blender学习笔记:齿轮模型建立
  9. win10重装系统后出现的0xc0000225问题解决
  10. ntdll.dll处引发的异常: 0xC0000005: 写入位置 0x00000004 时发生访问冲突
  11. 【Mybatis】一二级缓存的源码研究
  12. 计算机网络如何选择路由器,路由器上网方式如何选择?
  13. uni-app入门教程(7)第三方登录和分享
  14. 有向图的邻接矩阵和邻接表画法
  15. 【动态规划】牛客NC20035打鼹鼠
  16. 中兴c300业务板_中兴C300 GTGO ETGO GTGOE GTGOG OLT业务板 EPON GPON
  17. 自己研发的核辐射探测仪——盖格计数器,探测装修材料,海淘的利器
  18. 第三方应用分享到微信朋友圈功能
  19. 2021年下半年信息系统项目管理师上午客观题参考答案及解析(二)
  20. 5-借助GeoServer创建图层组

热门文章

  1. EDI与VMI 的区别
  2. 输入两个实数,用一个函数求出它们之和
  3. 多元微积分_二重积分1
  4. 哪种计算机支持刻录功能,哪种软件更适合刻录CD |用flac刻录CD的方法
  5. 人人都需要知道的理财知识
  6. 华为鸿蒙荣耀壁纸,华为Mate 40全新主题、系统壁纸曝光:高清无水印
  7. 多线程(18) pthread_cond_broadcast
  8. 机动目标运动分析——IMM篇
  9. AI走向“战争技术”,是减少损伤还是推向灾难
  10. 大数据和java就业前景_java大数据开发的就业前景及未来趋势