
在这之前,如果有人问我,在微信中做一个产品,是用小程序还是 Web 页面 (严谨,既不是 HTML5 更不是 H5…) 的时候,我会这么说:
产品上,Web 上能做的,小程序中大部分都能做。小程序上能做的,Web 上不一定能做。
营销上,Web 能用到的入口,除了朋友圈以外,小程序都可以用。小程序能用到的若干入口,Web 不能使用。
关于后一点,朋友圈分享现在普遍会用海报来做,在这点上 Web 和小程序的能力其实是一样的,都是只能帮你保存到相册,再请用户手动发送到朋友圈。而小程序独有的发现 - 小程序、搜索框快捷方式等对用户回访特别重要的入口,Web 页面是不能使用的。
那么,昨天的发布意味着什么?简单地说,小程序的开发成本有了很大的下降。
微信小程序刚刚上线的时候,由于小程序使用类似 HTML、CSS 和 JavaScript 等 Web 语言的方式进行开发,让一些媒体误以为小程序就是 Web 开发,欢呼将「迎来 Web 开发的春天」。我自己的第一份工作就是 Web 开发工程师,Web 开发入门确实比较容易;可是尽管小程序使用了 Web 语言,那只是语法上的一致,整个开发模式完全不同,更接近于原生 App 的开发而不是 Web。打个比方,对在看这篇文章的大多数人来说,读中文要比读英文更容易,但假如你看不懂英文版的《量子力学导论》,翻译成中文版你也不一定能看懂。开发小程序,需要有专门的、独立于 Web 团队之外的团队,按小程序的规范重新设计、重新开发,不能将已有的产品直接迁移过来。
可以理解微信当初做这个决定,是希望开发者按照微信的要求,为微信的用户重新去思考、设计一套全新的用户体验,而不是将已有的 Web 页面搬进来。历史上,包括 Microsoft 的 Windows Phone 平台、Google 的 Chrome Packaged App 都冒过类似的险,而其实 Apple 也做过类似的决定——Steve Jobs 2010 年 4 月亲笔写过一篇文章,解释为何 iPhone 不支持 Flash (Thoughts on Flash),其中最重要的原因是,Apple 不希望第三方开发者将已有的产品直接搬过来,而是希望开发者能直接在 iOS (当年还叫 iPhone OS) 进行开发,为 iPhone 的用户提供最好的体验。这些决定赌的是,新平台 (小程序或 iOS) 带来的商业上的好处,最终会让开发者们愿意付出这个成本。
那时候的 iPhone 还很弱小,但后来的历史证明 Steve Jobs 赌对了——Adobe 公司今年 7 月宣布,将在 2020 年最终停止 Flash 的更新和分发。
微信,则在昨天支持了开发者直接嵌入已有网页。
所以,如果你已经有一个网站,可以直接在小程序中套个壳,把网站中的 Web 页面摇身一变成一个小程序。至于这和直接分发 Web 页面有什么区别——
产品上,Web 上能做的,小程序中大部分都能做。小程序上能做的,Web 上不一定能做。
营销上,Web 能用到的入口,除了朋友圈以外,小程序都可以用。小程序能用到的若干入口,Web 不能使用。
细心的你可能已经注意到了,上面这两条并没有任何变化… 对,在小程序的用法上其实没有任何变化,只是开发成本下降了。
那么,在今天之后,使用微信小程序框架开发的「原生」小程序,和嵌入已有的 Web 页面的「Web」小程序,在用户感受上会有什么区别呢?
「原生」小程序,整个小程序是提前下载的,不会有 Web 页面打开时的页面加载感。我们过去的可用性研究表明,这是用户对一个界面是「Web」还是「原生」的最主要判断标准。对于偏工具型的小程序,「原生」的感受应该会更好。
「原生」小程序对体验的控制更完整,自己要做的事情也更多。例如 Web 页面中用户可以选择页面上的文字复制,而在「原生」小程序界面中,这是需要单独添加的功能。
「原生」小程序提供了一些专属的控件和 APIs(接口),如展示群信息、发送推送等,这些只有使用小程序框架开发才能使用。
所以,如果需要和微信生态整合得更紧密,可以使用「原生」方式开发;如果追求快速迁移已有 Web 产品,嵌入 Web 页面更快。
这个就是程序的基本架构。最关键也是必不可少的,是 appjs、appjson、appwxss 这三个。其中,js后缀的是脚本文件,json后缀的文件是配置文件,wxss后缀的是样式表文件。底部标签底部标签是一个tabBar。实现比较简单,只需要简单配置一下即可。 appjson
{
"pages":[
"pages/function/function",
"pages/pay/pay",
"pages/account/account",
"pages/index/index",
"pages/logs/logs"
],
"tabBar":{
"color": "#464a56",
"selectedColor": "#6595e9",
"backgroundColor": "#FFFFFF",
"borderStyle": "white",
"list": [{
"pagePath": "pages/function/function",
"text": "功能",
"iconPath": "images/tab_function_defaultpng",
"selectedIconPath": "images/tab_function_selpng"
},{
"pagePath": "pages/pay/pay",
"text": "收款",
"iconPath": "images/tab_consume_defaultpng",
"selectedIconPath": "images/tab_consume_selpng"
},{
"pagePath": "pages/account/account",
"text": "账户",
"iconPath": "images/tab_account_defaultpng",
"selectedIconPath": "images/tab_account_selpng"
}]
},
"window":{
"navigationBarBackgroundColor": "#6595e9",
"navigationBarTextStyle":"white",
"navigationBarTitleText": "V50",
"backgroundColor": "#eeeeee",
"backgroundTextStyle":"light"
}
}
2值得注意的地方,就是 pages 接受一个数组,每一项都是字符串,来指定小程序由哪些页面组成。每一项代表对应页面的路径+文件名信息,数组的第一项代表小程序的初始页面。小程序中新增/减少页面,都需要对 pages 数组进行修改。文件名不需要写文件后缀,因为框架会自动去寻找路径json, js , wxml, wxss的四个文件进行整合。
3页面标题
这个标题如何实现?
4我们只需要把所有页面通用的配置放在 pagejson,然后在各个page的 json文件里面配置每个页面特有的属性即可。因为在上面的 appjson 中已经配置了通用页面的 window属性了,我们只需要在functionjson中配置页面标题即可
{
"navigationBarTitleText": "功能"
}
5轮播图
接下来实现顶部的轮播图。微信提供了一个swiper组件来实现轮播图。
<swiper indicator-dots="{{indicatorDots}}"
autoplay="{{autoplay}}" interval="{{interval}}" duration="{{duration}}">
<block wx:for="{{imgUrls}}">
<swiper-item>
<image src="{{item}}" class="slide-image" />
</swiper-item>
</block>
</swiper>
functionjs
//functionjs
Page({
data: {
indicatorDots: true,
autoplay: true,
interval: 5000,
duration: 1000,
imgUrls: [
'>
'>
'>
],
},
})
方法2
但很多人不知道的是,其实微信小程序是可以借助一款简单实用的制作工具「即速应用」生成的。整个过程无需编程无需代码,通过简单的拖拽组件即可生成微信小程序,非常方便。下面分享一下微信小程序开发教程入门篇,让新手们迅速掌握微信小程序开发的基本方法。
2登录即速应用官网,点击上方首页菜单的“立即制作”,即可开始进行制作。
选择“空白模板”,进行自由创作。如果想节省时间,也可以选择主题模板进行快速制作。
3进入制作界面后,可以看到页面分组和页面属性。点击“组件库”,开始搭建页面。
4根据自己的需求选择组件以搭建页面,每个组件的文案和都是可以自己编辑的。
5即速应用有很多可供选用的组件。比如用于布局的双栏组件、面板组件、顶部导航组件和底部导航组件。
还有一些可以实现更多复杂功能的高级组件,比如动态列表组件、动态容器组件、自定义表单组件、个人中心组件。
6把每个页面都编辑好,并做好页面之间的跳转,确保逻辑无误。全部做好之后,点击右上角的“保存”,然后点击“发布”。若是制作过程中想要找回之前的版本,只需要去历史记录中回复既可。
7跳转页面后,再次点击“发布”,即可生成。
8点击“小程序打包”,生成小程序的代码。打包下载之后,就可以直接上传到微信官方后台的开发者工具里,即可完美对接小程序。技术人员还可以根据自己的需求修改,在原有代码的基础上进行二次开发。
<block wx:for-items="{{array}}" wx:key="{{itemid}}">
做最外层循环,这里array的数组元素,就变为item了,item有2个属性,其中一个是list,
循环我们需要的数据,然后我们和往常使用wx:for一样,item遍历的时候直接iteminfo itemlist 等等直接使用就可以
但是当我们点击类名需要显示二级分类list里面的列表
<block wx:for-items="{{array}}" wx:key="{{itemid}}">
注意 这个 wx:for-items="{{array}}" 默认的循环项为item,不需要指定了。所以,第二层循环的item,解释器已经理解了,就是指向array的,现在item下面的list,依旧是一个数组,我们可以在嵌套来遍历他。
<block wx:for-items="{{itemlist}}" wx:for-item="page" wx:key="item">
用wx:for-items="{{itemlist}}",对array里面的list属性内嵌数组做了遍历循环 注意后面跟了 wx:for-item="page" 而且item没有s
就是对指向array的 item 的元素 list 数组的元素重新命名为page了,后面的page *** 作,就是对这个内嵌数组 *** 作,二层循环用pagename pageurl就可以了。这里wx:for-item的命名其实是一个可选项,如果不命名,默认就是item,也就是嵌套的循环下标也是item,大概是为了避免误解,导致,微信团队,又加了这一个功能,个人觉得有点多余。
微信小程序在使用webview 时,导航栏是不允许自己修改的。对于左上角的返回按钮,如果相要在返回的时候,d框确定后再返回,微信小程序是没有api支持。在微信小程序的思路上基本无解。
二。解决办法:用于我们的webview 就是直接使用的微信浏览器。我们是可以使用js 相关的 History API 主要是通过 设置 historypushState 这个方法来阻止的
假如你写了一个Applet小程序名为MyAppletjava 编译后为MyAppletclass 你需写一个htm文件: <html> <applet code="MyAppletclass" width=500 hight=500> </applet> </html> 然后用IE浏览该htm文件,就可以了
以上就是关于嵌入已有的 Web 页面的「Web」小程序和使用微信小程序框架开发的「原生」小程序相比,有哪些区别呢全部的内容,包括:嵌入已有的 Web 页面的「Web」小程序和使用微信小程序框架开发的「原生」小程序相比,有哪些区别呢、如何把做好的html网页程序,放在微信小程序里、小程序商城的嵌套循环等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)