需求在现实项目中,我们通常会需要做一些跨多平台的页面。比如说一个运动页面,需要在微信小程序里展示,也需要在自家公司的app内里展示,还需要在支付宝等平台内里展示。这时间一个h5就是很符合你的需要了。假如这个时间需求再复杂一些,比如说在这个运动页面需要调些扫码功能,或者需要调起支付功能,等原生方法调用的需求,那么这个时间你需要一个中心件,来处置处罚差异端的原生方法。 中心件实现原理原理很简单,我们在抽象出来一个类,在这类内里,我们将需要用到原生的方法进行实现,其他终端对这个类进行继续并重写所有的方法。 偷懒的话,可以不要pc调试类,直接在父类实现pc调试类里的所有方法。 注意点微信、支付宝都有其对应的判定方法,但自家app的判定, 需要原生开发在userAgent内里添加标识(这个不复杂,原生都知道怎么加,不知道的叨教度娘) 上代码下面上一段我的判定各端的代码 [code] class Addon { constructor () { let ua = window.navigator.userAgent.toLowerCase() if (/MPBank/.test(window.navigator.userAgent)) { // 招商行小程序 } else if (ua.match(/MicroMessenger/i) == 'micromessenger') { // 大部门手机可接纳此判定,是否是小程序,但有小部门华为等手机由于加载慢,这里会出现误判 if (window.__wxjs_environment === 'miniprogram' || ua.match(/miniprogram/i) == 'miniprogram') { } else { } } else if (/AlipayClient/.test(window.navigator.userAgent)) { // 此处用ua和miniprogram判定,先检察兼容性,利用my.getEnv为异步,不适合此处 if (ua.match(/miniprogram/i) == 'miniprogram' || ua.match(/webview/i) == 'webview') { // 支付宝小程序 } else { // 支付宝 } } else if (/xxxx-app/.test(window.navigator.userAgent)) { // app } else { // 其他处置处罚(web和第三方渠道进入) 兜底 } } export let addon = new Addon()[/code]下面是一个简单的方法示例 IosAppAddon.js [code] export default class IosAppAddon extends ParentAddon { scan (data) { window.scanCallback = data.success window.webkit.messageHandlers.scan.postMessage({ callBack: 'scanCallback' }) } } [/code]到此这篇关于Html5同时支持多端sdk的小技巧的文章就介绍到这了,更多相关Html5多端sdk内容请搜索脚本之家从前的文章或继续欣赏下面的相关文章,渴望大家以后多多支持脚本之家! 来源:https://www.jb51.net/html5/797843.html 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |
|手机版|小黑屋|梦想之都-俊月星空
( 粤ICP备18056059号 )|网站地图
GMT+8, 2025-7-2 09:20 , Processed in 0.060094 second(s), 18 queries .
Powered by Mxzdjyxk! X3.5
© 2001-2025 Discuz! Team.