目前QAP项目依赖的Nuke UI、JS SDK、Weex、Rax等库与客户端不兼容时,插件需要使用webview容器渲染页面。如何让QAP项目支持降级运行至关重要。
isv除了发布无需任何附加处理,直接把工程文件的_output/qap文件夹拿来发布,qap里会默认为每个page自动创建一个同名的html。无需做任何更改,如果你QAP的第一个页面是qianniu.js 发布后应该会有一个http://xxxx/qianniu.html,这个就是降级页面。
具体的操作步骤为:
_output/qap
目录。为了方便阐述,发布后的url类似http://xxx.xxx.com/qap,记作qapUrl
、首屏页面记作indexUrl
。WebRootPath
字段正确的指向了qapUrl(即降级目录发布的地址)。qap.json
中,所有带有capability
的page,生成h5Url
字段。生成的逻辑为:WebRootPath
+ url.path。开发者可以自行配置h5Url,确保h5Url指向正确的路径。h5Url
的用处是:插件降级后,协议路由(如tradeDetail)时客户端会直接打开页面的h5Url。{ "appKey": "21085840", "version": "1.0", "pages": [ { "default": true, "capability": "itemChoose", "url": "qap:///index.js" } ], "iconfonts": [ ], "WebRootPath": "https://xxx.xxx.com/qap", "min_qn_android": "5.8.8", "min_qn_ios": "5.8.2", "jssdk": "1.0.14" }
callback url
)为indexUrl
。现阶段开发这个也可以将回调地址(callback url
)设置为目前线上稳定的H5版本的url。以https发布_output/qap文件夹时,为了防止出现跨域问题,可以将JS文件的response header
增加Access-Control-Allow-Origin:*
来允许跨域。目前阿里CDN所有的js都是允许跨域的。如下图所示: