小程序引入外链-联想智能机器人

小程序官方明确给出他们现在不支持外链,我们再也不能像原来一样用一个a标签,链接一个我们程序外的页面了。

其实想想,小程序不支持dom操作,如果支持外链的话,那岂不是又开始支持dom操作了吗,jquery之类的插件又可以用了,显然这和微信对小程序的定义有出入,所以不支持外链html似乎是可以理解的。

这引起一个问题,如果我们已有的成型的项目而我们项目有很多集成别的系统的链接,而我们想抓住小程序这个噱头做一个小程序版本的,似乎变成不能了。

拿我自己的项目为例:我们是一个智能机器人小乐项目,可以很好的解决联想电脑用户的问题,此为背景。

此处有两类需要解析html的地方,用到了两个方式,第一个方式是我自己写的,只能解析层级只有两到三层的html代码,第二个方式是别人已经写好的插件(https://github.com/icindy/wxParse),但是你要达到你想要的效果就需要对这个插件进行修改。首先来说简单的

第一种:

机器人的聊天是用户发送问题,后端返回的答案是html格式的(项目已成型),这时候我们要做的第一步是把段html代码翻译成小程序自己的语言。

返回值为:

{"content":"启动速度和电脑配置及系统安装软件的多少都有关系,以下是小乐搜集到的优化方法,您可以尝试\n1.您可以通过调整启动项和服务项提速,<a href=\"http:\/\/robotterm.ecare365.com\/ZmptY2NtYW5hZ2Vy\/p4data\/Rdata\/Rfiles\/1581.html\">➢点击这里<\/a>查看方法\n\n2.如果是笔记本电脑,可尝试将电源管理方案调整至高性能,<a href=\"http:\/\/robotterm.ecare365.com\/ZmptY2NtYW5hZ2Vy\/p4data\/Rdata\/Rfiles\/xitongdianyuanguanli.html\">➢点击这里<\/a>查看操作方法\n\n3.您可以使用小工具优化加速您电脑的系统(<a href=\"http:\/\/tsonline.lenovo.com.cn\/robot\/robot_web_app\/api\/tools_weixin.html?id=1531144&name=8s8_t137\">➢点击这里填写您的邮箱<\/a>接收小工具,在电脑上运行)\n\n85%的用户通过以上方法解决了此问题\/:strong\n\n亲~不要着急哦,请回复数字“0”小乐帮您转接工程师","msgtype":"text","code":1000,"success":true}

下边开始转化,

思路:第一步首先把这个html代码转化成json,由于这个一部分数据层级只有两层,所以我们生成的json就不考虑层级,按照顺序生成,但是需要注意的是里边含有a标签,这时候我们需要做的是把a标签变成navigator标签,或者是转成view标签,加上点击事件调用navigator事件。

 js生产json后wxml用template循环获取

这样就可以生成我们想要的页面

第二种情况:

如上图所示,我们解析了a标签,但是这个a标签对应的是一个html的方案,而解析整个html我们用上边的方式就不行了。

这时候我们需要时点击a标签时用请求 wx.request请求这个html的url,获取到html后用html2json直接转化成json,https://github.com/icindy/wxParse在这里你可以得到获取转化成json以及解析成wxml的例子。

需要注意的是你拿到这个例子后展示你的页面会很差强人意,这时候你只能修改它的逻辑,按照你们的模版进行进一步转化。

 

 

 这样一个简单的小程序的聊天就形成了,即使里边有外链我们也可以很好的解决

 

posted @ 2016-12-09 13:55  杨小羊  阅读(8103)  评论(3编辑  收藏  举报