• 注册
  • 小小乐

    小小乐

    lv.2实名用户
    鉴定师:国家一级鉴定师。
    聊天
  • 转账

  • Warning: Trying to access array offset on value of type bool in /www/wwwroot/www.acocoa.com/wp-content/module/public/function/acocoa/function/jinsom.php on line 163
  • 拉黑
  • 举报
  • 动态
  • 帖子
  • 淘货
  • 保真阁
  • 私人博物馆
  • 1 关注
  • 1 粉丝
  • 44人气
  • 0魅力
  • 头衔

  • 实名用户
  • 资料简介

  • 社区号:7650891864
  • 昵称: 小小乐
  • 性别: 男生
  • 位置:江西省.宜春市
  • 说明:专注于:古玩收藏和交易!有需要购买藏品的可以关注我哈。
  • 注册时间:3年前
  • 查看更多
  • 查看全文
  • 查看作者
  • 文章测试

    江西·萍乡
  • 4
  • 54
  • 0
  • 19.72w
  • 咸鱼梦想小可鸭鸭小小乐学藏官方

    请登录之后再进行评论

    登录
  • 0
    欣然lv.1
    最低多少钱?最低多少钱?
  • 0
    咸鱼梦想lv.2实名用户
    测试看看最低多少钱?
  • 0
    咸鱼梦想lv.2实名用户
    内容测试出
  • 查看全文
  • 查看作者
  • 宫论项目开发记录

    记录2023年项目进度周期。

  • 2
  • 732
  • 0
  • 20.9w
  • 小小乐小可鸭鸭

    请登录之后再进行评论

    登录
  • 0
    小小乐lv.2实名用户
    2025年8月29日
    1、移动端首页新增自定义meta字段选项:width=device-width:页面宽度与设备屏幕宽度相同,保证自适应。 initial-scale=1:初始缩放比例为1(即页面初始加载时不缩放)。 maximum-scale=1:用户可缩放的最大比例为1(即不能放大)。 minimum-scale=1:用户可缩放的最小比例为1(即不能缩小)。 user-scalable=no:禁止用户缩放页面(双指缩放等无效)。 viewport-fit=cover:针对 iPhone X 及以上带“刘海屏”的设备,页面内容会延伸至屏幕的安全区域,适配全屏显示。viewport-fit:有 auto(默认)、contain(内容不会被安全区遮挡)、cover(内容延伸到整个屏幕)。允许网页以“Web App”模式(即全屏模式)运行,隐藏 Safari 浏览器的工具栏和地址栏。
    2、为了确保移动端的配色一致性,会通过: root进行如下参数的后台接管配置:--xinle_color 主题主色,用于整个网站的主要颜色。 获取方式:xinle_get_option('xinle_mobile_defalut_color') --xinle-navbar-bg 导航栏背景色。 获取方式与主色一致。 --xinle-navbar-text-color 导航栏文字颜色。 获取方式:xinle_get_option('xinle_mobile_defalut_color_text') --f7-tabbar-link-active-color 底部 TabBar 激活时的链接颜色(活跃状态)。 获取方式与主色一致。 --f7-navbar-link-color 导航栏链接文字颜色。 获取方式与导航栏文字颜色一致。 --f7-navbar-font-size 导航栏字体大小,单位为 vw(相对于视口宽度)。 --f7-bars-text-color 所有 bars(导航栏、工具栏等)上的文字颜色。 获取方式与导航栏文字颜色一致。 --f7-toolbar-height 底部菜单栏高度,固定为 49px。 --f7-page-bg-color 页面背景颜色。 获取方式:xinle_get_option('xinle_mobile_defalut_page_bg_color’)。
    3、APP初始化首页的时候,会通过后台获取如下配置:获取当前登录用户的ID,并赋值给 $user_id。 $current_user 通常是通过 wp_get_current_user() 得到的用户对象。通过自定义函数 xinle_get_option 获取 WordPress 后台的“移动端Tab栏配置”选项,赋值给 $tab_config。 这个配置一般是控制移动端底部导航栏(TabBar)的内容和结构。通过 xinle_get_option 获取“页面配置”选项(一般为数组或对象),然后用 json_encode 转换为 JSON 字符串,赋值给 $routesJson。 这个 JSON 数据会传递给前端 JavaScript,用于动态渲染页面或路由。调用自定义函数 xinle_is_chat_list() 获取聊天会话消息列表。通常返回当前用户的聊天会话数据。
    4、APP端的视图窗口现已通过配置项 xinle_mobile_tab_config 进行读取和动态生成,该配置项能够灵活定义视图的相关属性并对其行为进行控制。目前支持的参数包括以下几项:key 用于标识视图的唯一性,以确保不同视图之间的区分;is_login 用于设置视图的访问权限,若该参数为真,则该视图仅对登录用户开放,并会强制要求用户完成登录操作;icon 指定视图的菜单图标,支持自定义图标样式以增强视觉效果;name 为视图的名称,用于显示在菜单或其他位置,帮助用户快速识别视图功能;active 定义视图的类名,主要用于调整样式或交互效果。
    5、视图主容器的处理,读取$tab_config(移动端底部Tab栏的配置数组),每次循环处理一个Tab页面。获取每个Tab的 key 和 page_name。 通过 xinle_is_config 获取该Tab的详细配置。 根据配置的布尔值,生成对应的class类名字符串(如隐藏导航栏、顶部下拉刷新、无限加载、需要登录等)。 只有第一个Tab设置为激活状态(tab-active)。 如果配置了隐藏头部,则加上 hide 类。输出每个Tab的最外层 div,ID为Tab的key,class为 view tab,如果是第一个Tab还会带 tab-active。 里面有页面容器、顶部导航栏。 导航栏左侧、右侧、标题都可以通过后台配置自定义内容(支持WordPress的shortcode)。页面内容区的class会根据配置动态组合,比如支持下拉刷新(ptr-content)、无限加载(infinite-scroll-content)、需要登录(is_login)等。
    6、主视图功能进一步优化,现已支持通过后台灵活设置更多参数,以满足不同场景的需求。具体来说,若当前Tab页配置了顶部下拉刷新功能,则会自动输出下拉刷新动画的HTML结构,提供更直观的交互体验;如果后台已指定该Tab页的具体页面文件地址(例如 /wp-content/themes/你的主题/xxx.php),系统将自动require该文件内容,完成页面内容的集成展示,确保模块加载的便捷性与一致性。而对于未配置具体页面地址的情况,则会智能显示一个加载动画以及提示信息,例如“后台未设定模块地址”,并附带一个跳转链接,方便用户快速定位到后台设置页面进行配置调整。最后,系统会自动关闭HTML标签,并自增变量,顺畅进入下一个Tab页的循环处理,确保每个模块都能按照设定逻辑高效加载与呈现。
    7、当前,APP页面的所有组件均通过后台进行配置管理。在首页初始化时,系统会通过读取xinle_page_config来生成相应的页面。在后台配置页面时,需要设置以下参数:首先是route['key'],即页面组件的唯一标识符;其次是route['componentUrl'],这是页面的读取路径,必须经过标准化的Framework7构建才能被识别。此外,还有route['admin'],此参数用于限定页面访问权限,仅允许管理员访问;最后是route['login'],该参数确保页面仅在用户登录后才能访问。为了确保页面能够正确构建并响应,所有页面组件都必须在后台进行适当配置,否则前端将无法正常访问。
    8、动态生成 Framework7 路由配置的处理逻辑如下:首选通过DOMContentLoaded确保所有 DOM 元素加载完成后再执行代码,避免未加载导致的报错。变量定义visitedPages:用于记录已访问页面(目前没用到,可用于后续功能如页面缓存等)。 app_path:存储移动端页面的基础路径,方便后续拼接组件路径。 routesData:从 PHP 传来的路由 JSON 数据,包含每个页面的配置(如 key、componentUrl、login、admin 等)。遍历每个路由配置,生成 Framework7 的路由对象数组。 path:每个页面的访问路径。 componentUrl:组件页面的实际路径。 beforeEnter:路由进入前的钩子函数,用于权限校验。
    9、Framework7路由配置现在支持权限检测处理,系统会通过beforeEnter来检测当前页面组件访问权限:如果当前路由需要登录(login==true),且用户没登录(!xinle.is_login),则: 调用登录函数 xinle_login()。 阻止跳转,reject()如果页面需要管理员权限,且未登录,先强制登录。如果已登录但不是管理员,则弹窗提示无权访问,并阻止跳转。所有权限校验通过后,允许页面跳转。注:对每个页面实现登录和管理员权限控制,无权限时自动拦截跳转,并弹窗或跳转登录。支持后续扩展页面缓存、跳转方向等功能。
    10、APP端的初始化工作:1. 绑定应用根节点 el: '#app' Framework7 会把页面的主要内容绑定到这个元素( <div id="app"></div>)。 2. 基础配置 name: '奇峰药业' 应用名称。 theme: 'ios' 使用 iOS 风格主题。 infiniteScroll: true 启用无限滚动。 panel: { swipe: true } 允许侧边栏通过滑动打开。 view: { pushState: true, iosSwipeBack: true } pushState: true 启用浏览器历史记录(地址栏变化)。 iosSwipeBack: true 启用 iOS 风格的左滑返回上一页。 3. 路由配置 routes: [ ... ] 路由规则数组,决定页面跳转和内容加载的方式。 3.1. 动态路由(...routes) 由你之前的代码动态生成,每个路由都包含权限校验(登录、管理员)、页面路径和组件路径。 跳转到这些页面时,都会先执行 beforeEnter 权限验证。
    11、在应用实例初始化阶段,当用户通过点击链接或导航菜单跳转页面时,Framework7将按照以下流程进行处理:首先,根据用户跳转的路径匹配对应的路由配置,并执行beforeEnter权限校验(如果设置了相关逻辑),判断用户是否需要登录或具备管理员权限等条件。若权限不满足,系统将弹窗提示或跳转至登录页面,以阻止当前页面跳转操作。权限通过后,系统会加载对应的页面组件。对于未匹配的路径,系统会通过通配符路由进行处理,展示404页面或加载指定的外部页面。此外启用了pushState功能,浏览器地址栏会随着页面跳转动态更新。
  • 0
    小小乐lv.2实名用户
    2025年8月28日
    1、移动端目前实现了对浏览器返回事件(popstate)的监听,利用history.back()、history.pushState()等API对历史记录进行操作时,会触发popstate事件,从而执行绑定的回调函数,最终调用xinle_page_back()方法以完成页面返回的逻辑处理。而在APP环境下(通过检测userAgent中是否包含Html5Plus判断),不会绑定页面上的.back按钮事件,而是通过APP的原生返回事件进行处理,确保在不同环境下都能实现稳定的返回功能。
    2、xinle_page_back负责页面路由后退返回机制,具体的执行流程如下:检查页面上是否存在 layui 的遮罩层(即 .layui-m-layershade)。 如果存在遮罩层,优先关闭所有 layer 弹窗(layer.closeAll()),并终止后续返回操作(return false;)。 这样可以防止用户误操作导致弹窗未关闭直接跳转页面。 首页特殊处理: 如果当前用户处于首页(user.is_home 为 true),可以在这里做特殊处理(如弹窗提示或日志记录)。 获取当前视图对象: 获取框架下当前的视图实例(app.views.current),通常用于 SPA 或前端路由管理框架。 判断参数并返回页面: 如果传入了 url 参数,则直接返回到指定页面,并强制刷新(force: true)。 如果没有传入 url,则默认返回到上一个页面。
    3、安卓返回键处理(plusready 事件) 1. 监听 APP 环境准备就绪 通过 document.addEventListener('plusready', ...),确保代码只在 APP(Html5Plus)环境下运行。 2. 获取当前 Webview 使用 plus.webview.currentWebview() 获取当前页面的 Webview 实例,后续返回操作都基于此 Webview。 3. 监听安卓物理返回键 plus.key.addEventListener('backbutton', ...) 监听安卓设备的物理返回键事件。 4. 判断 Webview 是否可以后退 webview.canBack(function(e){...}) 判断当前 Webview 是否有历史记录可返回。 5. 处理流程如下: a. 如果当前在首页(user.is_home) 直接调用 main.moveTaskToBack(false),把 APP 退到后台(返回桌面),而不是直接退出 APP。 b. 如果有弹窗 检查是否有 .modal-overlay-visible 或 .login-screen.modal-in 元素(即页面有弹窗)。 如果有,优先关闭所有弹窗(myApp.closeModal()),并移除 .popup-overlay 的某些 class(此处建议补全 class 名称)。 c. 如果有 Fancybox 弹窗 检查 .fancybox-is-open,如果有,关闭 Fancybox 弹窗($.fancybox.close())。 d. 否则正常页面后退 如果 Webview 可以后退(e.canBack),执行 webview.back() 返回上一页。 如果不能后退(已到最顶层页面),同样调用 main.moveTaskToBack(false),让 APP 退到后台。
    4、移动端目前在页面初始化时,会执行一系列页面路由监听操作,以确保用户操作和页面状态的实时响应。这些监听事件包括以下几种:pageInit(页面初始化),用于加载页面初始内容及相关逻辑;routeBack(页面行为:后退),当用户执行页面后退操作时触发;routeChange(页面行为:前进),响应用户的页面前进操作;pageBeforeIn(页面即将进入),在页面正式进入前预先处理相关逻辑;pageAfterIn(页面已进入),用于处理页面进入后的状态更新;pageBeforeOut(页面即将离开),在页面离开前执行清理或保存操作;pageAfterOut(页面已离开),确保页面离开后的后续逻辑处理;pageBeforeRemove(页面即将被移除),用于监听页面被移除前的最后处理环节。这些事件的组合使用能够有效提升页面切换的流畅性和用户体验,同时为开发者提供灵活的页面状态管理能力。
    5、移动端在触发(pageBeforeIn:页面即将进入时)会触发以下处理:判断当前页面是不是首页或主Tab页面(通过判断页面名称是在一个预设的数组里)。 如果是首页或Tab页面: 会把浏览器地址栏的路径重置为根路径 /,但不会刷新页面,这样可以避免路由混乱; 同时把一个全局变量(比如 user.is_home)设置为 true,表示当前用户正处于首页; 然后调用一个初始化首页的函数,把首页内容重新渲染出来,确保首页功能正常。 如果不是首页或Tab页面: 只把那个全局变量设置为 false,标记当前页面不是首页。
    6、移动端路由监听:当页面完成切换并“进入”后,会自动触发 pageAfterIn 事件。 2. 获取并保存当前页面内容区域 代码通过 $('.page-content.' + page.name + '_content') 获取当前页面的内容区域,并赋值给全局变量 user.page_content,方便后续操作或渲染。 3. 打印调试信息 在控制台输出:“页面已进入:” 以及页面的名称和路由地址,方便开发时定位和调试当前页面状态。 4. 记录页面历史路由 通过 page.route.url 获取当前页面的路由地址(URL)。 判断该 URL 是否已经存在于 page_history 数组中: 如果不存在,则将当前页面的 URL 添加到 page_history,用于记录用户访问过的页面,方便后续做页面回退、历史导航等操作。
    7、移动端路由监听:当页面即将被销毁、移除(比如返回、跳转到其他页面等)时,自动触发 pageBeforeRemove 事件。 2. 控制台打印调试信息 在控制台输出:“页面即将被移除:” 以及当前页面的名称,方便开发过程中追踪页面的生命周期。 3. 从历史记录中移除当前页面的路由 获取当前页面的路由地址(page.route.url),赋值给变量 pageUrl。 在 page_history 数组中查找该 URL 的位置(indexOf)。 如果找到了(index !== -1),说明历史记录中有这个页面的路由: 通过 splice 方法把这个路由地址从 page_history 数组中删除,保持历史记录的正确性,避免重复和无效数据。
    8、当移动端首页的 DOM 加载完成后(即触发 jQuery 的 $(document).ready() 方法),开始执行预设的函数内容以确保页面功能的正常运行。首先,初始化聊天会话页面,通过调用 xinle_update_view_messages() 方法实现聊天列表的加载与消息内容的显示,同时支持页面的自动刷新,以便用户在进入页面时即可看到最新的聊天信息,优化交互体验。接着,处理 URL 哈希值以实现页面跳转逻辑。具体流程如下:通过 window.location.hash 获取当前窗口的哈希值(如 #chat),然后去掉哈希符号 #,提取实际路径(如 chat)。为了统一页面入口路径并简化后续的页面管理,使用 window.history.pushState(null, null, '/') 将浏览器地址栏的路径设置为根路径 /,这一操作不会触发页面刷新。最后,根据处理后的路径调用 xinle_page_open(path) 方法,加载对应的页面内容或模块。
    9、APP端新增页面路由访问事件 xinle_page_open,负责处理页面访问请求,确保页面切换逻辑高效且流畅。其执行流程如下:首先,函数会获取当前视图对象和路由管理器,这两个核心对象是后续页面操作的基础,确保所有页面操作都基于当前视图和路由进行。随后,函数会检查自定义的历史记录数组 page_history,判断目标页面是否已经打开过。如果发现该页面 URL 已存在于历史记录中,则直接调用 xinle_page_back(url) 返回到之前打开的页面,避免重复打开,并终止函数执行。接着,函数会进一步判断当前页面的 URL 是否与目标页面一致,如果当前页面就是用户要打开的页面,则仅输出一条警告信息,避免页面重复加载,提升性能。
    如果目标页面不在当前页面但已存在于路由的历史记录中,函数会采取三步处理措施:首先,删除页面残留的 DOM 元素,避免内容冲突或重复;其次,从路由历史记录中移除该页面,确保历史记录的准确性;最后,如果该页面是动态注册的路由,则尝试移除相关路由配置(若移除失败会输出警告信息)。在完成上述检查与清理后,函数将通过路由的导航方法 navigate 打开目标页面,并传递相关参数(如动画效果、回调函数等),以实现页面的顺利切换。
    10、APP端新增了一个用于刷新当前页面的路由处理方法(xinle_page_refresh),其执行流程设计如下:首先,通过 app.views.current 获取当前激活的视图对象(View),在 Framework7 框架下,通常只有一个主视图,这一步确保了操作的目标视图是当前正在使用的视图。接着,方法会判断是否传入了 url 参数:如果传入了 url,则将其作为需要刷新的目标页面地址;如果未传入 url,则会自动获取当前路由对象的 URL,将当前页面的地址作为默认刷新目标。随后,方法调用视图对象的路由器(View.router.navigate())来重新加载目标页面,并传递两个关键参数——reloadCurrent: true 和 ignoreCache: true。其中,reloadCurrent: true 强制重新加载当前页面,而非简单地跳转;ignoreCache: true 则确保忽略页面缓存,从服务器端重新获取页面内容,以保证页面内容的最新状态。刷新操作完成后,无论是当前页面还是指定的其他页面,都会根据目标 URL 重新加载,用户看到的始终是最新的页面内容。
    11、宫论APP端的页面路由处理已实现全面监听,对于页面的访问、后退、销毁以及初始化等操作均设置了对应的监听器以执行相应的响应处理。在页面请求阶段,通过xinle_page_open方法接管并执行处理;当用户触发页面后退时,则由xinle_page_back方法负责响应;而页面刷新操作则交由xinle_page_refresh方法进行处理。整个路由的响应逻辑完全依托于Framework7框架进行管理,确保页面切换的流畅性与稳定性。
  • 0
    小小乐lv.2实名用户
    2025年8月27日
    1、在APP端完成了xc_hook_app_plus初始化行为动作后,系统会自动触发【xc_hook_app_webview】监听器。由于当前宫论APP采用了PWA模式运行,webviews对象的行为需要进行全局监听处理,以确保页面事件能够根据实际需求随时进行动态调整。为此,系统专门封装了一个独立的方法,用于统一管理和控制webviews对象的监听逻辑。
    2、当触发 xc_hook_app_webview 时,系统会通过 plus.webview.currentWebview() 获取当前页面的 webviews 对象,并将其赋值到全局变量 webviews 中,方便后续页面直接通过该全局对象进行操作和处理。目前,webviews 已新增对外部链接点击(overrideUrlLoading)的处理逻辑。当用户在 webviews 中点击链接时,系统会监听该链接是否属于宫论内部链接。如果检测到不是宫论链接,则会触发拦截机制,禁止外部跳转,确保所有的跳转操作均通过系统内置方法处理,进一步提升安全性和控制力。此外,系统还对以 "tel:" 开头的 URL 进行专门监听,通过调用 plus.runtime.openURL 实现页面跳转,并强制跳转到手机的拨号界面,便于用户直接进行电话拨打操作。
    3、新增方法plus_open_url,专门用于处理APP端的页面跳转逻辑,主要覆盖了APP启动图跳转以及消息通知跳转的场景。该方法首先会通过xinle_isplus对用户环境进行验证,确认是否处于plus环境,如果验证结果为非plus环境,则直接返回false,避免后续操作。接下来,对传入的type变量进行判断,根据不同类型执行对应的跳转策略:如果type为webviews,则调用plus.runtime.openWeb,通过内置的WebSocket视图窗口实现页面跳转;如果type为web,则使用plus.runtime.openURL直接打开浏览器链接;而当type为page时,则触发内置的页面访问处理器xinle_page_open,完成APP内部页面的跳转。此外,为了优化移动端页面的用户体验,页面跳转过程中还支持通过F7框架实现流畅的移动端页面加载效果。
    4、APP端计划新增支持多种登录方式,包括原生手机一键登录、iOS苹果登录以及微信登录等。这些登录功能均通过对应的SDK进行调用。为提升后续维护效率和统一管理,决定封装一个方法——plus_login_auth,用于处理登录相关的逻辑。该方法不仅包括鉴权、SDK调用,还负责API对象的统一管理。使用时需传递一个type变量,用以标识登录请求的来源,例如weixin表示微信登录,univerify表示一键登录。在具体执行业务逻辑时,会通过xinle_isplus进行校验,判断当前客户端是否处于APP环境。如果校验未通过,则直接返回错误,确保登录流程的安全性和规范性。
    5、新增方法 plus_check_app,用于检测当前设备是否已安装指定的应用程序。此方法需要传递应用的包名或通用名称作为参数,系统将通过内置查询机制进行判断。如果检测到应用已安装,则返回 true;若未安装,则返回 false。此功能尤其适用于某些特定场景,例如调用支付宝进行支付时,若用户设备上未安装支付宝应用,则系统会主动拦截相关请求,并提示用户安装对应的应用程序以解决问题。通过这种方式,能够有效提升用户操作的流畅性,同时避免因缺少必要应用而导致的功能异常或用户体验下降。
    6、plus_login_auth已支持微信APP登录请求,具体执行流程如下:判断当前环境是否支持微信登录 首先判断 type == 'weixin',说明本次请求是微信登录。 使用 plus_check_app(type) 检查当前设备是否安装了微信客户端。 如果未安装,弹出提示“微信客户端未安装,无法使用”,流程终止。 检查微信SDK是否初始化 判断 app_login_auth['weixin'] 是否已初始化。 如果未初始化,弹出提示“未初始化微信SDK,无法发起登录鉴权”,流程终止。 发起微信授权登录 调用 app_login_auth['weixin'].authorize(...) 方法,开始微信授权流程。 授权请求携带参数: scope: 'snsapi_userinfo' state: 'authorize test' appid: xc.wechat_app_id 处理授权结果 授权成功回调(第一个 function 参数): 显示“登录中”加载提示。 输出授权成功的 code 到控制台。 向后端接口 xc.global_url + "/api.php" 发送 POST 请求,携带参数: type: 'xc_app_login_weixin' code: e.code 后端返回结果后,隐藏加载提示,并根据返回内容进行处理: 如果 msg.code == 0(登录成功): 如果返回的 msg.link 存在,说明需要注册账户: 弹出“进入注册流程”提示。 1秒后跳转到 msg.link 注册页面。 如果没有 msg.link,说明登录成功: 执行 xc_login_ok_hook(msg),进行登录成功后的处理(如保存用户信息、跳转主页等)。 输出返回内容到控制台。 如果 msg.code != 0(登录失败): 弹出失败提示,输出返回内容到控制台。 授权失败回调(第二个 function 参数): 输出授权失败信息到控制台。 弹出“授权失败”提示,终止流程。 流程结束。
    7、plus_login_auth已支持univerify(一键登录请求),具体执行流程如下:判断 app_login_auth['univerify'] 是否存在,或者 univerify_login_error 是否被定义。 如果 univerify_login_error 被定义,弹出其内容作为提示。 否则提示“当前设备不支持一键登录”。 以上任一条件满足,流程终止。 用户协议和隐私协议检测 通过 xinle_is_config 方法分别检测用户协议和隐私协议配置,便于后续展示。 控制台输出用户协议的链接。 设置协议默认勾选状态 默认情况下,defaultCheckBoxState 设为 true(已勾选)。 如果设备厂商为“Huawei”,则设为 false(未勾选)。 发起一键登录授权 调用 app_login_auth['univerify'].login 方法,打开一键登录授权界面。 登录成功后回调,拿到授权信息: openid:用户唯一标识 access_token:访问令牌 控制台输出登录成功的 openid 和 access_token。 显示“正在处理登录请求”的等待弹窗。 与后端交互进行登录处理 通过 AJAX POST 请求将 openid 和 access_token 发送到后端 /login.php,请求类型为 xinle_app_login_univerify。 后端返回数据后,关闭等待弹窗,并关闭授权界面。 处理后端返回结果 如果 msg.code == 0(登录或注册成功): 如果 msg.register 存在,说明新账户注册成功,弹窗提示“账户注册成功”,1.5秒后刷新首页。 如果没有 msg.register,说明直接登录成功,弹窗提示“账户登录成功”,1.5秒后刷新首页。
    8、univerify(一键登录)功能现已全面升级,支持通过univerifyStyle直接自定义页面样式。此前,样式调整需要通过APP进行初始化配置,每次修改都需发布新的APP版本才能生效,导致维护和管理流程较为繁琐。而现在,系统引入了内置的PLUS事件机制,配置调整可以实时生效。
    9、集成了plus事件中的plus_camera功能,实现了调用手机系统摄像头进行拍照或录制视频的操作。该方法需要传递两个关键变量:filter和time。其中,filter用于指定操作类型,支持两种模式——“image”和“video”,分别对应拍照图片和录制视频;time为可选参数,用于设置录制视频的时长,最大支持60秒,可根据实际需求进行自定义。在调用摄像头功能前,系统会先通过xinle_isplus验证用户是否处于APP环境中,若用户不在APP环境,则会返回对应的错误提示;若处于APP环境中,则会进一步通过plus_is_permission检测用户是否已授予应用所需权限。如果用户未开放摄像头权限,系统将终止操作并返回相应的错误信息。
    10、通过plus_camera发起的拍照的执行流程如下:用摄像头的 captureImage 方法进行拍照。 如果拍照成功: 关闭之前可能存在的权限提示(Toast)。 控制台打印照片的路径,方便调试。 用 H5+ 的文件系统API解析照片路径,获取文件对象。 读取这个文件内容为base64格式。 将base64数据转成Blob对象,再进行上传操作(通过自定义函数)。 如果解析路径或读取文件失败,会关闭提示,并输出错误信息。 如果拍照失败: 关闭权限提示(Toast)。 输出拍照失败的原因。 如果失败原因是“没有权限”,就弹出一个对话框,询问用户是否前往手机设置页面开启相机权限。 用户同意就跳转到设置页面。 用户取消就不做处理。
    11、APP端新增了一个名为plus_gallery的方法,用于打开系统相册以选择图片或视频。该方法需要传递两个关键变量:filter用于指定选择类型(视频或图片,默认值为图片);number用于指定选择的数量,若选择视频则数量固定为1,若选择图片则可以自由设置,但受系统限制,最多可选择9张图片。此功能首先会通过xinle_isplus方法验证当前环境是否为APP端,若检测到不在APP环境内,则直接返回错误信息,终止操作。随后,系统会通过plus_is_permission方法检测用户是否已授予应用所需权限。如果用户未开启相册权限,操作将无法继续,系统会返回相应的错误提示,确保流程的安全性和用户隐私的保护。
  • 查看全文
  • 查看作者
  • 宋人有耕者。田中有株。兔走触株,折颈而死。因释其耒而守株,冀复得兔。兔不可复得,而身为宋国笑。

    江西·宜春
  • 2
  • 25
  • 0
  • 1.08w
  • 学藏官方小小乐

    请登录之后再进行评论

    登录
  • 0
    学藏官方lv.2实名用户
    消息调整不
  • 0
    学藏官方lv.2实名用户
    消息调整测试
  • 0
    学藏官方lv.2实名用户
    很棒,很可以。很优秀!