App打开微信小程序并传递参数

在App中打开小程序的功能发布有一段时间了,网上关于这个的新闻很多,但是技术资料并不多,我们有项目需要尝试这种方式,特意试了一下,发现还是有一些坑,分享给大家。

首先微信官方文档在微信.开放平台上,截图如下:


image.png

一. 开发前先得做好几个准备工作:

  1. 在微信开放平台上有账号而且有通过的移动应用。


    image.png
  2. 在微信公众平台有账号而且有小程序,最好发布为体验版本


    image.png
  3. 在微信开放平台把对应的移动应用和小程序建立关联。这个过程来回需要登陆和扫二维码n次。

image.png

二. 在android和ios调试官方sample打开小程序

注意官方下载的sample配置的证书和bundle id必须和在微信开放平台对应的移动应用使用的一致。


image.png

打开小程序的核心代码不多,里面有几个参数必须设置正确

String appId = "wxd930ea5d5a258f4f"; // 填应用AppId
IWXAPI api = WXAPIFactory.createWXAPI(context, appId);

WXLaunchMiniProgram.Req req = new WXLaunchMiniProgram.Req();
req.userName = "gh_d43f693ca31f"; // 填小程序原始id
req.path = path;                  //拉起小程序页面的可带参路径,不填默认拉起小程序首页
req.miniprogramType = WXLaunchMiniProgram.Req.MINIPTOGRAM_TYPE_RELEASE;// 可选打开 开发版,体验版和正式版
api.sendReq(req);

上面几个参数再详细说一下:

  • appId指的是微信开放平台对应移动应用的appId,而不是小程序的appId,这里注意
  • userName是微信公众平台里小程序的原始Id,是gh开头的。


    image.png
  • req.path就是打开小程序的路径,传递参数就是通过这个来传递,但是文档上并没有说,试出来的。
req.path="page/index?key1=xxx&key2=yyy";//类似http的url方法来传递参数

*req.miniprogramType选的是开发和体验版本,正式版本的小程序没有测试过。

ios和android类似,不再细说。

3. 在小程序端接受App传递过来的参数

上面的App打开的path是'path/index',所以需要把App的onLaunch事件定义在page/index.js上


image.png

这里的options.scene是1069,这个场景id表示从app打开。
options.query.key1和options.query.key2就是app打开小程序传递的参数。

4. 关闭小程序回到App并传递数据

//小程序端通过navigateBackApplication来关闭
f1: function (e) {
    wx.navigateBackApplication({
      "extraData":"传递到app的数据"
    })
}

其中navigateBackApplication是一个新的函数,在微信小程序的API和IDE的自动提示里都没有。
Android和iOS通过一个回调函数来接受这个参数:

public void onResp(BaseResp resp) {
    if (resp.getType() == ConstantsAPI.COMMAND_LAUNCH_WX_MINIPROGRAM) {
        WXLaunchMiniProgram.Resp launchMiniProResp = (WXLaunchMiniProgram.Resp) resp;
        String extraData =launchMiniProResp.extMsg; // 对应JsApi navigateBackApplication中的extraData字段数据
    }
}

这里有一个坑,应该是bug或许后期微信会解决。就是Android接受的参数必须是一个js对象,ios接受的参数是一个字符串。
也就是在小程序端现在必须这么写:

//小程序端通过navigateBackApplication来关闭
f1: function (e) {
   if(在android下){//wx.getSystemInfo
    wx.navigateBackApplication({
      "extraData":{key:"传递到app的数据"}
    })
   else{
      wx.navigateBackApplication({
        "extraData":"传递到app的数据"
    })
  }
}

大概过程就是这样,能在app里打开小程序而且还能传递参数这个功能还是非常有用的,小程序和app很多共通的功能可以只实现一套小程序就可以了。

AppWorker官方已经在do_TencentWX 组件集成了这个功能,可以跨平台使用这个功能。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,165评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,720评论 1 298
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,849评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,245评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,596评论 3 288
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,747评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,977评论 2 315
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,708评论 0 204
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,448评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,657评论 2 249
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,141评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,493评论 3 258
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,153评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,108评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,890评论 0 198
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,799评论 2 277
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,685评论 2 272

推荐阅读更多精彩内容

  • 转载链接 注:本文转载知乎上的回答 作者:初雪 链接:https://www.zhihu.com/question...
    pengshuangta阅读 28,309评论 9 295
  • 2017年还有5天的时间,曾经的梦想和计划你还记得多少?你又完成了多少?2017像再也寻不见的童年,像被风吹走的草...
    三月阳春_c953阅读 196评论 0 2
  • 一管清箫年华逝,年轮千转红颜尽,前尘湮灭桑田处,朝后落暮流年绝。生命似花,人生如梦,芬芳转瞬即逝,飘零的花瓣...
    君陌痕阅读 350评论 0 4
  • 1、下笔轻柔有余,刚劲不足,说明遇事优柔寡断,举棋不定。 2、结构紧凑,表明凡事小心谨慎,处处提防。 3、整体感差...
    江户川柯镇恶阅读 277评论 0 0
  • 1 逢年过节,朋友聚会,喝酒当然是必不可少的。不管你的酒量是好是差,对于很多人来说,感情全在酒里。风府君自从开上车...
    风府君阅读 634评论 2 1