app唤起小程序_微信小程序支付轮训

app唤起小程序_微信小程序支付轮训在同一开放平台账号下的移动应用及小程序无需关联即可完成跳转,非同一开放平台账号下的小程序需与移动应用(APP)成功关联后才支持跳转。可在“管理中心-移动应用-应用详情-关联小程序信息”,为通过审核的

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

在同一开放平台账号下的移动应用及小程序无需关联即可完成跳转,非同一开放平台账号下的小程序需与移动应用(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。

options.scene是1036,这个场景id表示app分享。
options.scene是1069,这个场景id表示从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。

<button class='server_button' open-type="launchApp" app-parameter="MemberId={{MemberId}}&MemberStatus={{MemberStatus}}" binderror="launchAppError">返回App</button>

这样可以传参数给App

扩展 

再下一步的需求是多个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://javaforall.net/167513.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月2日 下午12:36
下一篇 2022年8月2日 下午12:36


相关推荐

  • VXLAN基本概述

    VXLAN基本概述

    2021年4月16日
    162
  • linux系统dpkg命令[通俗易懂]

    linux系统dpkg命令[通俗易懂]dpkg是Debianpackage的简写,为”Debian“操作系统专门开发的套件管理系统,用于软件的安装,更新和移除。阅读目录安装软件 列出与该包先关联的文件 显示包的版本 移除软件(保留配置) 移除软件(不保留配置) 查找包的详细信息 列出deb包的内容安装软件命令:dpkg-i<.debfilename>实例:dpkg-i~/Download/mozybackup_i386.debmozybackup_i386.deb是手动下…

    2022年5月11日
    50
  • git下载安装教程

    git下载安装教程git下载安装教程前言:因为最近突然对使用github搭建一个自己的网站并绑定域名特别着迷,但是前提条件是必须得安装git,于是便把安装过程记录下来,便利自己,帮助他人。1.访问git官网下载最新版本git官方网页:https://git-scm.com/download/win在git官网中,有不同操作系统下的git,选择符合自己电脑版本的进行下载就可以了这里我选择的windows,然后根据自己电脑是32位还是64位,在下面两个选项中选择选择好了静待其下好就好了或许会有下载缓慢或无法下

    2022年6月11日
    34
  • 度量学习方法总结

    度量学习方法总结目录一.距离度量闵可夫斯基距离欧式距离(EuclideanDistance):标准化欧氏距离(StandardizedEuclideandistance)曼哈顿距离(ManhattanDistance)切比雪夫距离(Chebyshevdistance)马氏距离马氏距离代码示例:夹角余弦相关系数(Correlationcoefficient)…

    2022年6月18日
    43
  • 明翰英语教学系列之雅思常见词汇与固定搭配篇V1.0(持续更新)「建议收藏」

    明翰英语教学系列之雅思常见词汇与固定搭配篇V1.0(持续更新)「建议收藏」按场景记忆是最高效的,这里给出的音标全部是英氏。跟你没有相关性的表达你也要记下来,不仅可以用在听力、阅读、写作,还因为在雅思口语PART3中可能会问一些分类讨论的话题,不仅仅只说自己的情况。

    2022年6月10日
    348
  • 夫妻的对话

    夫妻的对话

    2022年3月6日
    57

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号