建议 web-view 打开页面的时候可以允许开发者自定义部分header信息
主要是两个场景:
1、可以把小程序里的已登录用户信息等不适合放在网址里的信息放在自定义header里传递到页面
2、目前小程序 web-view的useragent和微信浏览器的useragent是一样的,网页端没办法区分,通过自定义header可以区分
你好,我们会在后续版本中考虑这个需求
目前可以通过在web-view组件的src上多带一个特殊参数来区分程序环境。
页面中可以通过js变量window.__wxjs_environment来判断是否是小程序打开
@黄思程 设置cookie方法不行,我实际测试了,即使cookie有效期是当前session的情况下,在小程序webview中设置的cookie,在同一进程微信浏览器中打开,这个cookie仍然存在
根源还是在小程序webview和微信本身浏览器没有做区分
这个功能非常必要,通过url传参不太方便,也太好被模拟。
目前web-view和小程序自身与服务器端的会话同步也需要我们对web-view最一些自定义。
window.__wxjs_environment 是在前端操作,对于保密性而言根本没什么意义。
而通过postMessage来互相交互确认信息, 现在还非常鸡肋基本没得耍
自定义header是原生app开发中非常常见的一个功能(可以相对安全的放各种token),希望腾讯微信小程序的开发团队能多吸引点儿原生客户端开发的人员,才能更加了解开发者的需求,希望此功能微信小程序能早点支持。
@cunjinli 你好,你说的两种方法我都知道,都不符合我这边的开发需求
我这边逐条说一下
“可以通过在web-view组件的src上多带一个特殊参数来区分程序环境”
在URL 里加特殊的字符串这个方法是我现在在用的方法,但是很不方便,如果遇到页面里有其他页面的链接,就很麻烦了
“页面中可以通过js变量window.__wxjs_environment来判断是否是小程序打开”
很多时候在页面js生效之前就需要在服务器端先判断环境来决定加载的数据
在web-view的user-agent中加入特殊字符以区分微信自带浏览器 这个需求已经提了很多次了,小程序和微信本身浏览器从业务上来说很显然是属于两套不同逻辑,理应有所区分,希望可以尽快实现这个需求,谢谢