App唤起微信小程序和回调

在同一开放平台账号下的移动应用及小程序无需关联即可完成跳转,非同一开放平台账号下的小程序需与移动应用(APP)成功关联后才支持跳转。

可在“管理中心-移动应用-应用详情-关联小程序信息”,为通过审核的移动应用发起关联小程序操作。

唤起

App打开下程序他有两种方式:

1,通过App分享小程序卡片 到微信,然后在微信上点击小程序卡片打开小程序,这是小程序也可以打开App

第一步:你需要到微信开放平台 将你的app 关联上你的小程序!
第二步:你工程中需要导入有 wechatOpenSDK
第三步: 分享小程序卡片类型
官方文档:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419317332&token=&lang=zh_CN

第一种:文字类型分享示例
SendMessageToWXReq *req = [[SendMessageToWXReq alloc]init];
    req.text = @"分享内容";
    req.bText = YES;
    req.scene = WXSceneSession; // 目前只支持会话形式
    [WXApi sendReq:req];

第二种:App 主动分享小程序卡片:?? 小程序测试版不能分享
WXMiniProgramObject *wxminiObiect = [WXMiniProgramObject object];
    wxminiObiect.webpageUrl =  webpageUrl; //兼容低版本的网络链接
    wxminiObiect.userName =  userName;//小程序的原始ID
    wxminiObiect.path = path;// 指定打开小程序的某一个页面的URL路径
    wxminiObiect.hdImageData =  hdImageData; //小程序节点高清大图,小于128K

    WXMediaMessage *message = [WXMediaMessage message];
    message.title = @"小程序title";
    message.description = @"小程序description";
    message.mediaObject = wxminiObiect;
    message.thumbData = nil; // 兼容旧版本节点的图片,小于32k,新版本优先

    SendMessageToWXReq *req = [[SendMessageToWXReq alloc]init];
    req.message = message;
    req.scene = WXSceneSession; // 目前只支持会话

    return [WXApi sendReq:req];

2,通过App主动的调用api 打开小程序,这时候小程序也可以打开App

官方文档:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=21526646385rK1Bs&token=&lang=zh_CN

 WXLaunchMiniProgramReq *launchMiniProgramReq = [WXLaunchMiniProgramReq object];
    launchMiniProgramReq.userName = @"gh_3413cfa14bae";  //拉起的小程序的原始ID
    launchMiniProgramReq.path = @"pages/index/index";    //拉起小程序页面的可带参路径,不填默认拉起小程序首页
    launchMiniProgramReq.miniProgramType = WXMiniProgramTypeRelease; //拉起小程序的类型
   [WXApi sendReq:launchMiniProgramReq];
//或者
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);

WXMiniProgramTypeRelease 正式版    WXMiniProgramTypeTest 开发版    WXMiniProgramTypePreview 体验版

回调

当小程序从 APP 分享消息卡片的场景打开(场景值 1036,APP 分享小程序文档 iOS / Android) 或从 APP 打开的场景打开时(场景值 1069),小程序会获得打开 APP 的能力,此时用户点击按钮可以打开分享该小程序卡片/拉起该小程序的 APP。即小程序不能打开任意 APP,只能 跳回 APP。

按微信文档中描述,从小程序中跳回App只能通过点击小程序中的按钮方可跳回,如何实现点击按钮跳回App,并携带参数呢,需如下两步

App端:

需要创建WXEntryActivty,实现IWXAPIEventHandler接口,重写onResp方法。注意Acitvity需要在Manifest文件中声明 android:exported="true",这样才可以被外部唤起

public void onResp(BaseResp resp) {
    if (resp.getType() == ConstantsAPI.COMMAND_LAUNCH_WX_MINIPROGRAM) {
        WXLaunchMiniProgram.Resp launchMiniProResp = (WXLaunchMiniProgram.Resp) resp;
        String extraData =launchMiniProResp.extMsg; // 对应下面小程序中的app-parameter字段的value
    }
}

小程序端:

需要将 <button> 组件 open-type 的值设置为 launchApp。如果需要在打开 APP 时向 APP 传递参数,可以设置 app-parameter 为要传递的参数。通过 binderror 可以监听打开 APP 的错误事件。

<view class=‘suspension‘>
      <button class="server_button" open-type="launchApp" app-parameter="wechat" binderror="launchAppError">打开APP</button>
    </view>

这样App拿到的内容就是wechat。

扩展

再下一步的需求是多个App跳转一个小程序,再分别返回不同的App;一个App跳转不同的小程序,接受不同的返回内容。

从App拉起小程序页面的路径是可以带参数的,我们就利用这个参数判断是从那个App跳到小程序的。

例如:

名称为a的App跳转路径为:

"pages/index/index?type=appA"

名称为b的App跳转路径为:

"pages/index/index?type=appB"

小程序端接收参数:

onLoad: function (options) {
    console.log(options.type); //app传递过来的参数 可以判断a或者b
},

原文地址:https://www.cnblogs.com/joe235/p/11355891.html

时间: 2024-11-07 02:52:11

App唤起微信小程序和回调的相关文章

21小时精通微信小程序开发(仿猫眼电影App、微信小程序问答)|微信小程序开发视频教程

21小时精通微信小程序开发(仿猫眼电影App.微信小程序问答)网盘地址:https://pan.baidu.com/s/1GTpPX4A1U-w_3i6k7lLztQ 密码: 5pcz备用地址(腾讯微云):https://share.weiyun.com/5pzgU1y 密码:nmjyb8 微信小程序是一种不需要下载安装即可使用的应用,它实现了应用"×××"的梦想,用户扫一扫或者搜一下即可打开应用.也体现了"用完即走"的理念,用户不用关心是否安装太多应用的问题.应用

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

在App中打开小程序的功能发布有一段时间了,网上关于这个的新闻很多,但是技术资料并不多,我们有项目需要尝试这种方式,特意试了一下,发现还是有一些坑,分享给大家. 首先微信官方文档在微信.开放平台上,截图如下: 一. 开发前先得做好几个准备工作: 在微信开放平台上有账号而且有通过的移动应用. 2.在微信公众平台有账号而且有小程序,最好发布为体验版本. 3.在微信开放平台把对应的移动应用和小程序建立关联.这个过程来回需要登陆和扫二维码n次. 二. 在android和ios调试官方sample打开小程

快速了解微信小程序的使用,一个根据小程序的框架开发的todos app

微信官方已经开放微信小程序的官方文档和开发者工具.前两天都是在看相关的新闻来了解小程序该如何开发,这两天官方的文档出来之后,赶紧翻看了几眼,重点了解了一下文档中框架与组件这两个部分,然后根据简易教程,做了一个常规的todo app.这个app基于微信小程序的平台,实现了todo app的常规功能,同时为了让它更接近实际的工作场景,也用到了loading与toast这两个组件来完成一些操作的交互与反馈.这个平台给我的直观感受是,技术层面,它跟vue有相似性,但是远没有vue强大:开发时候的思路,不

(转)快速了解微信小程序的使用,一个根据小程序的框架开发的todos app

微信官方已经开放微信小程序的官方文档和开发者工具.前两天都是在看相关的新闻来了解小程序该如何开发,这两天官方的文档出来之后,赶紧翻看了几眼,重点了解了一下文档中框架与组件这两个部分,然后根据简易教程,做了一个常规的todo app. 这个app基于微信小程序的平台,实现了todo app的常规功能,同时为了让它更接近实际的工作场景,也用到了loading与toast这两个组件来完成一些操作的交互与反馈. 这个平台给我的直观感受是,技术层面,它跟vue有相似性,但是远没有vue强大:开发时候的思路

【重磅】App内可直接打开微信小程序,新增内容安全接口等

今晚,微信又公布了几项微信小程序新能力: 微信小程序上线App直接打开小程序功能 内容安全接口.插件详情页等多种能力接连更新上线 一.App直接打开小程序 之前微信已经开放过相关能力,可以实现App和微信小程序之间的相互跳转,但并没有完全开放跳转能力: 必须先使用"APP链接分享到微信打开为小程序"能力用户仅可从APP分享至微信的"小程序卡片",访问时打开来源应用,其他路径暂不支持 . 这种方式体验很不好,不少用户吐槽分享到微信的内容被强制跳转小程序. 那么本次小程

微信小程序学习指南

作者:初雪链接:https://www.zhihu.com/question/50907897/answer/128494332来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 微信小程序正式公测, 张小龙全面阐述小程序,定档1月9日上线(附90分钟演讲全文) ... 前言:新人第一坑,跳坑指南:修改后,必须保存:ctrl+S: 1:官方工具:https://mp.weixin.qq.com/debug/w ... tml?t=1476434678461 2:简易教

微信小程序使用promise封装异步请求

一:开发了一段时间的微信小程序,发现里面的API都是这样的: wx.showModal({ title: '提示', content: '这是一个模态弹窗', success: function(res) { if (res.confirm) { console.log('用户点击确定') } else if (res.cancel) { console.log('用户点击取消') } } }) 如果代码多了逻辑多了,就会出现所谓的回调地狱. wx.showModal({ title: '提示'

微信小程序源码下载(200多个)

微信小程序源码下载汇总,点击标题进入对应的微信小程序下载页面. 最新 demo源码(点击标题进入帖子下载) 描述 1 微信小程序 会议室预定小程序 微信小程序 会议室预定小程序**** 本内容被作者隐藏 **** 2 微信小程序-双人五子棋小游戏 微信小程序-双人五子棋小游戏**** 本内容被作者隐藏 **** 3 打卡签到小程序 用微信小程序实现的一个简单的打卡签到的小程序拒绝 4 微信小程序---左滑删除 微信小程序---左滑删除**** 本内容被作者隐藏 **** 5 一个借钱的记事本的微

微信小程序开源项目库汇总

微信小程序开源项目库汇总,里面集合了OpenDigg 上的优质的微信小程序开源项目库,方便移动开发人员便捷的找到自己需要的项目工具等,感兴趣的可以到GitHub上给个star. UI组件 weui-wxss ★852 - 同微信原生视觉体验一致的基础样式库 Wa-UI ★122 - 针对微信小程序整合的一套UI库 wx-charts ★105 - 微信小程序图表工具 wemark ★85 - 微信小程序Markdown渲染库 WeZRender ★36 - 微信小程序Canvas增强组件 wet