js-sdk微信分享在ios踩的坑

微信分享,预估开发时间五分钟…测试的是iphone8,分享设置完全无效。于是,进入调试模式,开发者工具一切正常,手机调试提示接口也完全ok,纳闷了…换安卓机测试,居然测试通过。想起ios的某些奇怪机制,难道是链接里带中文,好吧那就编码吧,下面说一下几种编码方式:

encodeURIComponent

它把URI字符串采用URF-8编码格式转化成escape格式的字符串。它会将更多的字符进行编码,比如"/"等字符。如果字符串里面包含了URI的几个部分不适合用这个来进行编码。否则“/”字符被编码后将URL显示错误。不会被此方法编码的字符:! * ( ),解码方法:decodeURIComponent()。

  1. 对查询字符串参数和它发现的任何非标准字符进行编码;
  2. 会使用对应的编码替换所有非字母数字字符。

encodeURI()

把URI字符串采用UTF-8编码格式转化成escape格式的字符串。不会被此方法编码的字符:! @ # $ & ( ) = : / ; ? + ',反向编码函数:decodeURI()。

  1. 对基础URL进行编码;
  2. 不会对本身属于URI的特殊字符进行编码,例如冒号、正斜杠、问号和井字号;
  3. 编码后的结果是除了空格之外的其他字符都原封不动,只有空格被替换成了%20。

经过编码后再测试ios,分享配置完全ok了,想起曾经ios设置cookie也碰到过无法使用中文的问题,浏览器设置携带中文需谨慎!!!

你可能感兴趣的:(js-sdk微信分享在ios踩的坑)