微信分享,预估开发时间五分钟…测试的是iphone8,分享设置完全无效。于是,进入调试模式,开发者工具一切正常,手机调试提示接口也完全ok,纳闷了…换安卓机测试,居然测试通过。想起ios的某些奇怪机制,难道是链接里带中文,好吧那就编码吧,下面说一下几种编码方式:
encodeURIComponent
它把URI字符串采用URF-8编码格式转化成escape格式的字符串。它会将更多的字符进行编码,比如"/"等字符。如果字符串里面包含了URI的几个部分不适合用这个来进行编码。否则“/”字符被编码后将URL显示错误。不会被此方法编码的字符:! * ( ),解码方法:decodeURIComponent()。
- 对查询字符串参数和它发现的任何非标准字符进行编码;
- 会使用对应的编码替换所有非字母数字字符。
encodeURI()
把URI字符串采用UTF-8编码格式转化成escape格式的字符串。不会被此方法编码的字符:! @ # $ & ( ) = : / ; ? + ',反向编码函数:decodeURI()。
- 对基础URL进行编码;
- 不会对本身属于URI的特殊字符进行编码,例如冒号、正斜杠、问号和井字号;
- 编码后的结果是除了空格之外的其他字符都原封不动,只有空格被替换成了%20。
经过编码后再测试ios,分享配置完全ok了,想起曾经ios设置cookie也碰到过无法使用中文的问题,浏览器设置携带中文需谨慎!!!