美文网首页ionic3+ionic2Ionic 2 花瓣 ..
关于ionic2 使用微信JS-SDK做图片上传,和支付问题

关于ionic2 使用微信JS-SDK做图片上传,和支付问题

作者: 説好的妹紙呢 | 来源:发表于2017-06-27 16:35 被阅读1926次

由于项目是放在微信公众号中运行,所有用到微信js-sdk,做图片上传、跟支付。下面是使用过程中碰到的一些问题。

1、首先,是引入微信js-sdk,因为ionic2 用的是typeScript,文件是.ts,所以引入js-sdk也是个问题。我们在src/index.html引入微信js-sdk

index.html引入微信js-sdk

2、在src/app目录下创建wechat.d.ts文件(自定义)

创建wechat.d.ts文件

在wechat.d.ts中声明全局变量 declare var wx:any;

3、在需要使用到微信图片上传的页面引入wechat.d.ts文件

引入wechat.d.ts

注意三个‘///’,还有文件的路径。打印我们声明在wechat.d.ts中的wx

打印wx变量

4、在使用的页面中首先使用config接口验证配置

使用config接口

成功,可以在控制台中查看jweixin-1.2.0.js返回的信息

jweixin-1.2.0.js

而且开启调试模式会弹出{“errMsg”:“config:ok”}

5、使用wx.chooseImage调起微信图库、拍照接口

wx.chooseImage接口

这里需要注意两个地方,第一是__self__我把当前类赋值给它,方便我们给模板传值,如果在wx.chooseImage中直接用this,会调用wx对象的属性或者方法。

第二是bypassSecurityTrustResourceUrl(localIds);这个是用来通过ionic2 模板赋值的安全机制。使用它我们才能正确的显示图片。因为localIds是可以直接拿来给img 的src赋值的。

不过滤掉安全机制,传到页面的src就会变成<imgsrc="unsafe:wxLocalResource://imageid123456789987654321",给我们的路径多个unsafe,而我们需要的是它后面的只就可以里,加上它图片是坏的。

那么我们怎么使用bypassSecurityTrustResourceUrl()呢

第一个import {DomSanitizer} from '@angular/platform-browser';

导入DomSanitizer

第二个在构造函数中声明 public sanitizer:DomSanitizer。就像这样

声明DomSanitizer

6、微信后端可能用到的app签名,需要与在微信公众号填写的app签名一致。

打开微信.开放平台官网 在资源中心--资源下载中找到Android资源下载

签名工具下载

拉到最下面

下载签名生成工具

这是一个手机应用,需要安装到手机。成功安装并打开

要查签名,需要用到app的包名,查看app的包名在项目config.xml中查看

查看包名

最后把包名输入微信app签名查看工具(需要打包成app并安装到手机才能看到。)

使用支付功能,直接使用wx.chooseWXPay接口

使用微信支付接口

总结:由于接触ionic2不久,基础也比较差,在使用微信js-sdk,过程中碰到的问题不少,磕磕绊绊,最后也还是完成。 总的来说就是要注意两个地方,一个是微信的回调域名跟我们应用的域名要保持完全一致,在我们获取当前域名的时候,需要注意好好看微信js-sdk的文档。还有一个是要注意this的指向,这个是基础。

相关文章

  • 关于ionic2 使用微信JS-SDK做图片上传,和支付问题

    由于项目是放在微信公众号中运行,所有用到微信js-sdk,做图片上传、跟支付。下面是使用过程中碰到的一些问题。 1...

  • 微信JS-SDK - 图片上传

    通过config接口注入权限验证配置 config内的配置参数一般由后台返回,这里是图片上传,需要使用choose...

  • mac上本地调试微信js-sdk的方法

    做微信公众号开发,用到了微信js-sdk的几个方法,比如手机相机拍摄照片,上传照片uploadImage等接口。这...

  • Vue 应用中使用微信 jssdk

    关于微信jssdk 通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照、选图、语音、位置等手机系统的能力...

  • 上传和相册.md

    概况 简介这份文档用来管理上传图片和相册的产品设计、开发进度和改进。妈妈咪呀,感谢微信官方开放了js-sdk,使得...

  • 微信公众平台提醒图片过大该怎么压缩

    上传图片时,为什么在96微信编辑器和微信公众平台会出现如下提示? 96微信编辑器上传图片提示 微信公众平台上传图片...

  • 微信小程序--图片相关问题合辑

    图片上传相关文章 微信小程序多张图片上传功能 微信小程序开发(二)图片上传 微信小程序上传一或多张图片 微信小程序...

  • 支付

    实物可以使用微信和支付宝, 关于苹果支付和支付宝/微信支付: 苹果:收取30%手续费,会在结算的时候直接扣除,有时...

  • Vue微信公众号开发踩坑记录

    需求 微信授权登录(基于公众号的登录方案) 接入JS-SDK实现图片上传,分享等功能 现状及难点 采用的Vue框架...

  • 微信公众号开发 ---- 微信jssdk开发示例

    概述 微信JS-SDK是微信公众平台 面向网页开发者提供的基于微信内的网页开发工具包。 通过使用微信JS-SDK,...

网友评论

  • 450e5419129f:你好,关于ionic2在微信项目中,启动很慢这个问题你们是怎么解决的?
    説好的妹紙呢:@乄Zoe小情绪 ionic build --prod

    服务器只放WWW的文件,没有启动屏,有也不要

    main.js 只有800多K

    图片尽量切小

    还可以压缩软件压缩代码

    如果还是不行,那就没辙了
    450e5419129f:@説好的妹紙呢 压缩过了呢,但是第一次打开的速度还是挺慢的,对了,你们作为微信项目是不是都是添加平台browser,然后把browser底下的www作为微信项目的?然后我想请问下启动屏你们是怎么设置的啊?
    説好的妹紙呢: @乄Zoe小情绪 --prod
  • 0de78fc35fbb:您好,为什么我再wx.chooseImage 获取的图片路径之后,放到ionic 的img x显示不了
    説好的妹紙呢:估计是图片路径不对,估计要把路径过滤下。
  • 小花猫走路静悄悄:您好,请教一个问题,我这边在用ionic2 选择图片/相机的时候,已经拿到 Android /iOS下的 本地图片资源(localId了)。直接给img的src写死赋值 是可以显示图片的,用微信的jssdk拿出来的值然后动态赋值进去就显示不出来了。
    <img src="{{imgs[i]}}">
    <img [src]="img" tappable >
    我尝试过这两种写法,都不行。
    説好的妹紙呢:这个跟ionic页面传值的安全机制有关,文中有介绍到的。
  • 枫_d646:您好,我也是用这个做的微信的项目,但是遇到一个问题,试了好多方法都不行,就是安卓的物理返回键问题,在微信中,假如我从 a 页面点击进入 b 页面,然后在点击进入 c 页面,如果点击导航栏的返回按钮的话是会正常返回的,但是点击安卓自带的物理返回键就不会正常的返回了,就会乱跳,一直按的话就会一直跳到首页,
    枫_d646:@説好的妹紙呢 对了,还有一个问题,就是微信的缓存你们都是怎么清除的啊,只要一天更新多次,就会出现缓存问题,新改的出不来,有时候还是白屏的问题,我试了:
    1.给js后面加时间戳;
    2.加个刷新按钮,点击的时候调用 window,location.reload(true)也不行
    3.我把js名字改了也是不行:flushed:
    4.微信的自带的刷新也不行
    枫_d646:@説好的妹紙呢 好吧,谢谢了
    説好的妹紙呢:您好,在微信项目中,我是没有对安卓物理返回键进行监听操作的,如果按返回键,默认是微信浏览器的后退,页面会刷新到首页。如果你项目中有对返回键监听操作的话,建议你去掉。当然你也可以试一试能不能使用物理返回键的时候,是用项目的返回上一页,而不是微信浏览器的返回刷新。这个我没试过。

本文标题:关于ionic2 使用微信JS-SDK做图片上传,和支付问题

本文链接:https://www.haomeiwen.com/subject/kuzyqxtx.html