Android 拉起小程序页面进行传值

公司在做弄这一块顺便就贴出来

1.第一步要知道 AppId,小程序原始 ID,第二步要在微信开发平台进行绑定APP

2.直接贴代码
        String appId = Contants.WEIXIN_APP_ID; // 填应用 AppId
        IWXAPI api = WXAPIFactory.createWXAPI(LoginActivity.this, appId);
        WXLaunchMiniProgram.Req req = new WXLaunchMiniProgram.Req();
//填写小程序原始 ID
        req.userName = Contants.WEIXIN_XIAOCHENGXU_ID;
//拉起小程序页面的带参路径 pages/index/index
//可选打开 开发版,体验版和正式版

//index 后面直接传数据过去什么的格式和小程序那边商量
        req.path=" pages/index/index?payId="+"eb075553b9354847ad6dd6ac0ecb64b5"+"&token="+BaseApplication.getInstance().getToken()+"&type=0"+"&terminalType=android";
req.miniprogramType = WXLaunchMiniProgram.Req.MINIPTOGRAM_TYPE_RELEASE;
        api.sendReq(req);

第二步小程序拿值,在业务上要登录才能进行下一步操作,比如支付这些

//获取应用实例

var app = getApp()

App({

globalData: {

appid: 'wx1111111111111111111111',//appid需自己提供,此处的appid我随机编写

secret: '5dc333333333333333333',//secret需自己提供,此处的secret我随机编写

 

},

onLaunch: function (options) {

var that = this

var user = wx.getStorageSync('user') || {};

var userInfo = wx.getStorageSync('userInfo') || {};

wx.login({

success: function (res) {

if (res.code) {

wx.getUserInfo({

success: function (res) {

var objz = {};

objz.avatarUrl = res.userInfo.avatarUrl;

objz.nickName = res.userInfo.nickName;

//console.log(objz);

wx.setStorageSync('userInfo', objz);//存储userInfo

}

});

console.log("***********user_code************************" + res.code);

 

openId: res.code + "",

token: ,

type: options.query.type,

payId: ,

terminalType: ,

//在小程序中取值以 options.query.键值对比如options.query.token

console.log(options.query.token + "----------------------");

console.log(options.query.payId + "----------------------");

console.log(options.query.terminalType + "----------------------");

var d = that.globalData;//这里存储了appid、secret、token串

 

//在小程序中进行发起支付操作

wx.requestPayment({

"appId": res.data.data.appId, //公众号名称,由商户传入

"timeStamp": res.data.data.timeStamp, //时间戳,自1970年以来的秒数

"nonceStr": res.data.data.nonceStr, //随机串

"package": res.data.data.package,

"signType": res.data.data.signType, //微信签名方式:

"paySign": res.data.data.paySign,

'success': function (res) {

console.log("*********requestPayment**************")

console.log(res)

wx.navigateBack({

delta: -1

})

},

'fail': function (res) {

console.log("*********requestfail**************")

console.log(res.errMsg)

console.log("*********requestfail**************")

}

})

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android 实现页面传值一般有以下几种方式: 1. 通过 Intent 传递值 在启动一个新的 Activity 的时候,可以通过 Intent 的 `putExtra()` 方法来传递值,例如: ```java Intent intent = new Intent(MainActivity.this, SecondActivity.class); intent.putExtra("data", "Hello, SecondActivity!"); startActivity(intent); ``` 在接收传值的 Activity 中,可以通过 `getIntent()` 方法取 Intent 对象,然后通过 `getStringExtra()` 方法取传递的值,例如: ```java Intent intent = getIntent(); String data = intent.getStringExtra("data"); ``` 2. 使用 Bundle 传递值 Bundle 是一个可存放数据的容器,可以通过 `putXXX()` 方法将数据存入 Bundle 中,然后将 Bundle 对象通过 Intent 传递给下一个 Activity,例如: ```java Intent intent = new Intent(MainActivity.this, SecondActivity.class); Bundle bundle = new Bundle(); bundle.putString("data", "Hello, SecondActivity!"); intent.putExtras(bundle); startActivity(intent); ``` 在接收传值的 Activity 中,可以通过 `getIntent().getExtras()` 方法取 Bundle 对象,然后通过 `getString()` 方法取传递的值,例如: ```java Bundle bundle = getIntent().getExtras(); String data = bundle.getString("data"); ``` 3. 使用静态变量传递值 在一个类中定义一个静态变量,然后在传值的 Activity 中设置这个变量的值,接收传值的 Activity 直接访问这个静态变量即可取传递的值,例如: 在传值的 Activity 中: ```java public static String data = "Hello, SecondActivity!"; ``` 在接收传值的 Activity 中: ```java String data = FirstActivity.data; ``` 以上是 Android 实现页面传值的几种方式,可以根据实际需求选择使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值