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
},

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/167513.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 几种java反编译软件的安装以及使用总结

    几种java反编译软件的安装以及使用总结公司要和别的公司合作,有些代码不希望让他们知道,最近老大们在弄代码混淆的事,而我就做起了测试代码混淆的工作。印象笔记更新之后不能用了,就整理在博客上吧。下面是在网上找的几种反编译软件的安装以及使用:一、JD-JUI官网下载链接:http://jd.benow.ca/下载之后解压,点击“jd-gui.exe”运行:直接将".jar"文件拖入进去即可查看里边的“.class”文件,如上图所示。二:Lu…

  • Ajax工作原理及实例「建议收藏」

    Ajax工作原理及实例「建议收藏」1、关于ajax的名字ajax 的全称是AsynchronousJavaScriptandXML,其中,Asynchronous 是异步的意思,它有别于传统web开发中采用

  • 关于Java中length、length()、size()的区别

    关于Java中length、length()、size()的区别首先区分一下length和length();length不是方法,是属性,数组的属性;public static void main(String[] args) { int[] intArray = {1,2,3}; System.out.println("这个数组的长度为:" + intArray.length);}length()是字符串String的一个方法;p…

  • springboot2.0整合kafka_spring与mybatis整合

    springboot2.0整合kafka_spring与mybatis整合首先引入POM依赖 &lt;!–nosql数据库–&gt; &lt;dependency&gt; &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt; &lt;artifactId&gt;spring-boot-starter-data-redis&lt;/artifactId&gt; &lt;/dependenc…

  • 2014手机号码归属地数据库

    2014手机号码归属地数据库2014手机号码归属地数据库2014年最新版《手机号码归属地数据库》(更新时间:2014年4月6日),总共1万条记录。数据字段:-号码段(即。号码前7位)-省-市-供应商(含,通信协议)演示样例数据:”1300000″,”北京”,”北京”,”中国联通(GSM)””1…

  • java大数据培训,如何选择适合自己的培训机构开发_大数据培训课程哪个好

    java大数据培训,如何选择适合自己的培训机构开发_大数据培训课程哪个好如何挑选Java大数据培训机构?对于有java的基础的人来说,可以视情况直接跳过java阶段的学习,那么学习时间就可以少一个多月时间,当然前提是基础足够扎实,如果你只是自学了一点java的知识,那么最好还是要从0开始学大数据,选择一家靠谱的Java培训机构。    如何挑选Java大数据培训机构?  想要学好大数据,就要选择好的培训大数据培训机构,那么,如何评判一个培训机构是一个好的培训机构…

    2022年10月21日

发表回复

您的电子邮箱地址不会被公开。

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