HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

乐乐音乐H5网页版-支持krc歌词(动感歌词、翻译和音译歌词)

简介

乐乐音乐H5网页版主要是基于uni-app框架开发的音乐播放器,目前只支持krc歌词(支持歌词颜色、字体大小、歌词进度调整和翻译和音译歌词),不支持歌词快进功能。

环境配置

HBuilder 3.5.3.20220729  
Vue 2.0  

功能截图

网络

默认歌词

翻译歌词

音译歌词

设置

关于

反馈

性能

注:该版本主要是针对H5来开发,如果在手机上运行卡顿严重,建议下载Android版本;如果放到电脑网页上运行,性能较好。

参考

uni-app官网

https://uniapp.dcloud.net.cn/

uni Canvas

https://uniapp.dcloud.net.cn/api/canvas/CanvasContext.html

popmotion JS动画库

https://github.com/Popmotion/popmotion.git

乐乐音乐Android版本

https://github.com/zhangliangming/HappyPlayer5.git

项目地址

https://github.com/zhangliangming/HappyPlayer-Uni.git

其他

  • 使用hb编译时,因为会存在跨域问题,建议使用内置浏览器运行。
  • 由于uni是一种多平台的框架,有兴趣的可将代码编译到其他的平台和拓展其他格式的歌词。
  • 目前是将Java代码语言翻译成对应的Js语言,在手机端上运行性能比较差,如果在PC上运行性能相对较好。
继续阅读 »

简介

乐乐音乐H5网页版主要是基于uni-app框架开发的音乐播放器,目前只支持krc歌词(支持歌词颜色、字体大小、歌词进度调整和翻译和音译歌词),不支持歌词快进功能。

环境配置

HBuilder 3.5.3.20220729  
Vue 2.0  

功能截图

网络

默认歌词

翻译歌词

音译歌词

设置

关于

反馈

性能

注:该版本主要是针对H5来开发,如果在手机上运行卡顿严重,建议下载Android版本;如果放到电脑网页上运行,性能较好。

参考

uni-app官网

https://uniapp.dcloud.net.cn/

uni Canvas

https://uniapp.dcloud.net.cn/api/canvas/CanvasContext.html

popmotion JS动画库

https://github.com/Popmotion/popmotion.git

乐乐音乐Android版本

https://github.com/zhangliangming/HappyPlayer5.git

项目地址

https://github.com/zhangliangming/HappyPlayer-Uni.git

其他

  • 使用hb编译时,因为会存在跨域问题,建议使用内置浏览器运行。
  • 由于uni是一种多平台的框架,有兴趣的可将代码编译到其他的平台和拓展其他格式的歌词。
  • 目前是将Java代码语言翻译成对应的Js语言,在手机端上运行性能比较差,如果在PC上运行性能相对较好。
收起阅读 »

iOS 本地消息推送通知

消息推送 iOS

效果如图

参考 iOS 最新的 UNNotificationRequest API

function notifyWithInterval(interval) {  

    //content https://developer.apple.com/documentation/usernotifications/unmutablenotificationcontent?language=objc  
    const content = plus.ios.newObject("UNMutableNotificationContent")  
    const Sound = plus.ios.importClass('UNNotificationSound')  
    content.plusSetAttribute("title", 'title');  
    content.plusSetAttribute("subtitle", 'subtitle');  
    content.plusSetAttribute("body", 'body_' + interval);  
    content.plusSetAttribute('sound', Sound.defaultSound());  

    //trigger https://developer.apple.com/documentation/usernotifications/unnotificationtrigger?language=objc  
    const Trigger = plus.ios.importClass("UNTimeIntervalNotificationTrigger")  
    const trigger = Trigger.triggerWithTimeIntervalrepeats(interval, false)  

    const UUID = plus.ios.newObject('NSUUID')  
    const uuid = UUID.plusGetAttribute('UUIDString')  
    // const uuid = plus.tools.UUID('TIMER');  

    //request  
    const Req = plus.ios.importClass('UNNotificationRequest')  
    const req = Req.requestWithIdentifiercontenttrigger(uuid, content, trigger)  

    const NotiCenter = plus.ios.importClass("UNUserNotificationCenter")  
    const userNotiCenter = NotiCenter.currentNotificationCenter()  

    userNotiCenter.addNotificationRequest(req)  
}

调用如下:

export default {  
    ......  
    onLaunch: function() {  
        ......  
        // 5 秒后推送本地提醒  
        notifyWithInterval(5)  
    }  
    ......  
}

其实不复杂,只是参考资料太少了,花两百买了一段代码,结果还是iOS废弃的api,自己看 iOS的文档重写了一个。
这里只写了一个 triggerWithTimeIntervalrepeats 的例子,其他的可参考 unnotificationtrigger

比较遗憾的是 delegate功能一直没调通,也就是自定义收到消息的后续操作,完全按 iOS 的文档实现 UNUserNotificationCenterDelegate
怎么都不行,有实现了的可以交流下,不打算弄原生插件,打算弃坑了……

继续阅读 »

效果如图

参考 iOS 最新的 UNNotificationRequest API

function notifyWithInterval(interval) {  

    //content https://developer.apple.com/documentation/usernotifications/unmutablenotificationcontent?language=objc  
    const content = plus.ios.newObject("UNMutableNotificationContent")  
    const Sound = plus.ios.importClass('UNNotificationSound')  
    content.plusSetAttribute("title", 'title');  
    content.plusSetAttribute("subtitle", 'subtitle');  
    content.plusSetAttribute("body", 'body_' + interval);  
    content.plusSetAttribute('sound', Sound.defaultSound());  

    //trigger https://developer.apple.com/documentation/usernotifications/unnotificationtrigger?language=objc  
    const Trigger = plus.ios.importClass("UNTimeIntervalNotificationTrigger")  
    const trigger = Trigger.triggerWithTimeIntervalrepeats(interval, false)  

    const UUID = plus.ios.newObject('NSUUID')  
    const uuid = UUID.plusGetAttribute('UUIDString')  
    // const uuid = plus.tools.UUID('TIMER');  

    //request  
    const Req = plus.ios.importClass('UNNotificationRequest')  
    const req = Req.requestWithIdentifiercontenttrigger(uuid, content, trigger)  

    const NotiCenter = plus.ios.importClass("UNUserNotificationCenter")  
    const userNotiCenter = NotiCenter.currentNotificationCenter()  

    userNotiCenter.addNotificationRequest(req)  
}

调用如下:

export default {  
    ......  
    onLaunch: function() {  
        ......  
        // 5 秒后推送本地提醒  
        notifyWithInterval(5)  
    }  
    ......  
}

其实不复杂,只是参考资料太少了,花两百买了一段代码,结果还是iOS废弃的api,自己看 iOS的文档重写了一个。
这里只写了一个 triggerWithTimeIntervalrepeats 的例子,其他的可参考 unnotificationtrigger

比较遗憾的是 delegate功能一直没调通,也就是自定义收到消息的后续操作,完全按 iOS 的文档实现 UNUserNotificationCenterDelegate
怎么都不行,有实现了的可以交流下,不打算弄原生插件,打算弃坑了……

收起阅读 »

相册获取所有照片图片和视频(ios)

相册获取所有照片图片和视频(ios) :https://ext.dcloud.net.cn/plugin?id=9060

相册获取所有照片图片和视频(ios) :https://ext.dcloud.net.cn/plugin?id=9060

通讯录选择联系人、可单选、多选、详情(ios)

通讯录选择联系人、可单选、多选、详情(ios):https://ext.dcloud.net.cn/plugin?id=9107

通讯录选择联系人、可单选、多选、详情(ios):https://ext.dcloud.net.cn/plugin?id=9107

App封装源码|分发平台搭建ios免签封装

源码分享

  快速发展的技术已推动企业在整个组织中使用各种应用程序。应用程序现在已成为提高生产力的组织不可或缺的一部分。App封装源码中全面的“应用程序管理”功能让您可以无缝地安装、控制和保护应用程序。
  
  App封装源码及演示:s.appwin.top
  
  什么是 App封装源码?
  
  App封装源码最近在其应用库中添加了大量应用,以向其消费者提供改进的服务。每个 App封装源码工具都旨在帮助开发人员以更好的方式构建、发展和改进。
  
  它可以帮助您测试跨平台,这意味着它可以让您上传两个 iOS 以构建一个 android APK 到同一个服务并将您的应用程序分发给适当的用户。
  
  更令人惊奇的是,有多少用户可以测试应用程序是没有限制的。如果您已经在使用 App封装源码分析,则此服务很容易实施。更重要的是,它使比较和管理应用程序的多个 beta 版本变得简单。

  App封装源码允许您通过无线方式将 iPhone、iPad 和 Android 应用程序分发给您的客户。
  
  它由 2 个组件组成:
  
  一个App封装源码管理界面,允许您上传应用程序并将其分配给用户。
  
  一个移动优化的、受登录保护的下载区域,您的客户可以在其中下载与其登录凭据关联的应用程序。
  
  支持 Python 2.7、3(在 3.4、3.5 上测试)和App封装源码­= 1.7。
  
  安装App封装源码­= 1.7
  
  pip install app-distribution
  
  在项目的 settings.py 中添加app_distribution到您的列表中。INSTALLED_APPS
  
  添加contrib.sites到INSTALLED_APPS项目的 settings.py 列表中。
  
  启用消息框架
  
  确保您已设置MEDIA_ROOT、MEDIA_URL、STATIC_URL和STATIC_ROOT。
  
  添加BASE_PATH(或BASE_DIR)到您项目的 settings.py,例如import os.path BASE_PATH = os.path.dirname(file). 为了在与项目的 settings.py 相同的级别上创建 Android 上传文件夹,必须对其进行设置。
  
  运行python manage.py migrate
  
  运行python manage.py collectstatic
  
  确保与android/android_apps项目的 settings.py 处于同一级别的文件夹可由您的网络服务器读写。
  
  如果您的网络服务器无法为您创建它们,您必须手动创建它们。有关详细信息,请参阅下面的安全注意事项。
  
  app_distribution.urls在您选择的挂载点包含到项目的 urls.py 文件中。这将是您的客户下载她的应用程序的地方。
  
  包含app_distribution.auth_urls在您项目的 urls.py 中。
  
  将LOGIN_REDIRECT_URL添加到项目的 settings.py 中。这是您在第 7 步中选择的 URL。如果您使用下面的示例,请将其设置为/distribute/.
  
  将项目 settings.py 中的SITE_ID值添加到表示您的站点的 Site 对象的主键中。
  
  登录到App封装源码Admin 并将服务器的 URL 添加到 Site 对象的域名(如果需要,创建一个)。在开发服务器上,这将是http://127.0.0.1:8000/

   

  
  网址设置
  
  在你的项目里面urls.py

  from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^distribute/', include('django_mobile_app_distribution.urls')),
url(r'^accounts/', include('django_mobile_app_distribution.auth_urls')),
]

  在您的项目settings.py文件中
  
  import os.path
  BASE_PATH = os.path.dirname(file) # BASE_DIR is also available.
  LOGIN_REDIRECT_URL = '/distribute/'
  SITE_ID = 1

  如果您在上传 Android APK 时收到权限被拒绝错误,请确保android/android_apps与您的项目的 settings.py 处于同一级别的文件夹可被您的网络服务器写入。
  
  导出您的 iOS 应用程序以进行无线分发
  
  在浏览器中登录App封装源码Admin 并导航到app_distribution ­ IOS Apps
  
  创建一个新的 iOS 应用程序。
  
  选择用户或组
  
  添加应用名称、捆绑版本、捆绑标识符和注释
  
  打开 Xcode
  
  在 Xcode 中将您的应用程序导出为存档:产品 ­ 存档
  
  确保您已获得配置权并使用分发证书进行签名
  
  转到管理器 ­ 档案
  
  选择您的存档并点击导出
  
  为企业或临时部署选择保存
  
  选择您的协同设计身份
  
  在 Xcode 中点击导出
  
  选择要保存到的文件夹并记住它
  
  在您的浏览器中将 IPA 文件上传到相应的字段中
  
  在下载页面上,您应该能够使用正确配置的设备进行无线下载和安装
  
  App封装源码优势
  
  以下是 App封装源码App Distribution 的一些最显着的优势,您必须知道:
  
  1. 有价值的发布前见解
  
  应用分发可以为您提供一个仪表板,以查看有关您的预发布应用版本的见解。测试人员可以为您提供及时的反馈,而 Crashlytics 可以让您对用户的状态有可操作的见解。
  
  2. 灵活快捷的服务
  
  使用 App封装源码App Distribution,开始使用分发变得轻而易举。您无需安装 SDK、填写冗长的表格或执行任何其他操作即可开始使用它。这只是将您的应用程序载入 App封装源码并通过 CLI 或控制台发送您的应用程序构建。
  
  3. 更易于测试人员使用
  
  您可以使用简单的 UI 向应用测试人员发送电子邮件通知,以简化注册过程。此工具还使所有测试人员可以更轻松高效地通过应用管理器访问您的应用程序及其正在测试的版本。
  
  App封装源码功能
  
  让我们看看下面给出的 App封装源码App Distribution 的关键特性:
  
  App封装源码App Distribution 可以让您管理您的 Android 和 iOS 测试,以便在发布之前分发您的应用程序。
  
  快速将您的版本交到测试人员手中。它提供快速入门,无需安装 SDK。更重要的是,App封装源码App Distribution 还提供及时交付。
  
  您可以通过不同的方式分发您的应用构建,包括 App封装源码CLI、控制台或 Gradle。您还可以使用它自动化您的应用程序分发。
  
  它可以让你管理和组织你的测试团队成组。您可以通过入职流程通过简单的电子邮件邀请添加新测试人员。您甚至还可以跟踪每个测试人员的状态。
  
  您可以将此工具与 Crashlytics 结合使用,以深入了解您的发行版的稳定性。
  
  结论
  
  App封装源码App Distribution 可以让您全面了解您的应用在 Android 和 iOS 上的 Beta 测试计划。
  
  此外,它还可以在制作新版本之前为您提供有价值的反馈。它可以让您使用 CI 服务器和控制台发送应用程序的预版本。更令人惊讶的是,安装应用程序对测试人员来说也更加舒适。

继续阅读 »

  快速发展的技术已推动企业在整个组织中使用各种应用程序。应用程序现在已成为提高生产力的组织不可或缺的一部分。App封装源码中全面的“应用程序管理”功能让您可以无缝地安装、控制和保护应用程序。
  
  App封装源码及演示:s.appwin.top
  
  什么是 App封装源码?
  
  App封装源码最近在其应用库中添加了大量应用,以向其消费者提供改进的服务。每个 App封装源码工具都旨在帮助开发人员以更好的方式构建、发展和改进。
  
  它可以帮助您测试跨平台,这意味着它可以让您上传两个 iOS 以构建一个 android APK 到同一个服务并将您的应用程序分发给适当的用户。
  
  更令人惊奇的是,有多少用户可以测试应用程序是没有限制的。如果您已经在使用 App封装源码分析,则此服务很容易实施。更重要的是,它使比较和管理应用程序的多个 beta 版本变得简单。

  App封装源码允许您通过无线方式将 iPhone、iPad 和 Android 应用程序分发给您的客户。
  
  它由 2 个组件组成:
  
  一个App封装源码管理界面,允许您上传应用程序并将其分配给用户。
  
  一个移动优化的、受登录保护的下载区域,您的客户可以在其中下载与其登录凭据关联的应用程序。
  
  支持 Python 2.7、3(在 3.4、3.5 上测试)和App封装源码­= 1.7。
  
  安装App封装源码­= 1.7
  
  pip install app-distribution
  
  在项目的 settings.py 中添加app_distribution到您的列表中。INSTALLED_APPS
  
  添加contrib.sites到INSTALLED_APPS项目的 settings.py 列表中。
  
  启用消息框架
  
  确保您已设置MEDIA_ROOT、MEDIA_URL、STATIC_URL和STATIC_ROOT。
  
  添加BASE_PATH(或BASE_DIR)到您项目的 settings.py,例如import os.path BASE_PATH = os.path.dirname(file). 为了在与项目的 settings.py 相同的级别上创建 Android 上传文件夹,必须对其进行设置。
  
  运行python manage.py migrate
  
  运行python manage.py collectstatic
  
  确保与android/android_apps项目的 settings.py 处于同一级别的文件夹可由您的网络服务器读写。
  
  如果您的网络服务器无法为您创建它们,您必须手动创建它们。有关详细信息,请参阅下面的安全注意事项。
  
  app_distribution.urls在您选择的挂载点包含到项目的 urls.py 文件中。这将是您的客户下载她的应用程序的地方。
  
  包含app_distribution.auth_urls在您项目的 urls.py 中。
  
  将LOGIN_REDIRECT_URL添加到项目的 settings.py 中。这是您在第 7 步中选择的 URL。如果您使用下面的示例,请将其设置为/distribute/.
  
  将项目 settings.py 中的SITE_ID值添加到表示您的站点的 Site 对象的主键中。
  
  登录到App封装源码Admin 并将服务器的 URL 添加到 Site 对象的域名(如果需要,创建一个)。在开发服务器上,这将是http://127.0.0.1:8000/

   

  
  网址设置
  
  在你的项目里面urls.py

  from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
url(r'^admin/', include(admin.site.urls)),
url(r'^distribute/', include('django_mobile_app_distribution.urls')),
url(r'^accounts/', include('django_mobile_app_distribution.auth_urls')),
]

  在您的项目settings.py文件中
  
  import os.path
  BASE_PATH = os.path.dirname(file) # BASE_DIR is also available.
  LOGIN_REDIRECT_URL = '/distribute/'
  SITE_ID = 1

  如果您在上传 Android APK 时收到权限被拒绝错误,请确保android/android_apps与您的项目的 settings.py 处于同一级别的文件夹可被您的网络服务器写入。
  
  导出您的 iOS 应用程序以进行无线分发
  
  在浏览器中登录App封装源码Admin 并导航到app_distribution ­ IOS Apps
  
  创建一个新的 iOS 应用程序。
  
  选择用户或组
  
  添加应用名称、捆绑版本、捆绑标识符和注释
  
  打开 Xcode
  
  在 Xcode 中将您的应用程序导出为存档:产品 ­ 存档
  
  确保您已获得配置权并使用分发证书进行签名
  
  转到管理器 ­ 档案
  
  选择您的存档并点击导出
  
  为企业或临时部署选择保存
  
  选择您的协同设计身份
  
  在 Xcode 中点击导出
  
  选择要保存到的文件夹并记住它
  
  在您的浏览器中将 IPA 文件上传到相应的字段中
  
  在下载页面上,您应该能够使用正确配置的设备进行无线下载和安装
  
  App封装源码优势
  
  以下是 App封装源码App Distribution 的一些最显着的优势,您必须知道:
  
  1. 有价值的发布前见解
  
  应用分发可以为您提供一个仪表板,以查看有关您的预发布应用版本的见解。测试人员可以为您提供及时的反馈,而 Crashlytics 可以让您对用户的状态有可操作的见解。
  
  2. 灵活快捷的服务
  
  使用 App封装源码App Distribution,开始使用分发变得轻而易举。您无需安装 SDK、填写冗长的表格或执行任何其他操作即可开始使用它。这只是将您的应用程序载入 App封装源码并通过 CLI 或控制台发送您的应用程序构建。
  
  3. 更易于测试人员使用
  
  您可以使用简单的 UI 向应用测试人员发送电子邮件通知,以简化注册过程。此工具还使所有测试人员可以更轻松高效地通过应用管理器访问您的应用程序及其正在测试的版本。
  
  App封装源码功能
  
  让我们看看下面给出的 App封装源码App Distribution 的关键特性:
  
  App封装源码App Distribution 可以让您管理您的 Android 和 iOS 测试,以便在发布之前分发您的应用程序。
  
  快速将您的版本交到测试人员手中。它提供快速入门,无需安装 SDK。更重要的是,App封装源码App Distribution 还提供及时交付。
  
  您可以通过不同的方式分发您的应用构建,包括 App封装源码CLI、控制台或 Gradle。您还可以使用它自动化您的应用程序分发。
  
  它可以让你管理和组织你的测试团队成组。您可以通过入职流程通过简单的电子邮件邀请添加新测试人员。您甚至还可以跟踪每个测试人员的状态。
  
  您可以将此工具与 Crashlytics 结合使用,以深入了解您的发行版的稳定性。
  
  结论
  
  App封装源码App Distribution 可以让您全面了解您的应用在 Android 和 iOS 上的 Beta 测试计划。
  
  此外,它还可以在制作新版本之前为您提供有价值的反馈。它可以让您使用 CI 服务器和控制台发送应用程序的预版本。更令人惊讶的是,安装应用程序对测试人员来说也更加舒适。

收起阅读 »

关于荣耀Magic UI系列HBuilder真机调试检测不到解决办法


最近用新买的荣耀手机调试app死活检测不到,去附件门店找技术人员,然后他们回复说他们也不知道原因,他们也没有办法,然后也测试了店里的其他的荣耀手机,结果都一样,华为的就正常,惊呆了,然后……………………………………
第二天,就各种整,然后……可以了,就是比较奇葩,直接上截图:
1、开启USB调试

2、选择USB配置,选择音频来源,奇葩吧

3、连接OK

继续阅读 »


最近用新买的荣耀手机调试app死活检测不到,去附件门店找技术人员,然后他们回复说他们也不知道原因,他们也没有办法,然后也测试了店里的其他的荣耀手机,结果都一样,华为的就正常,惊呆了,然后……………………………………
第二天,就各种整,然后……可以了,就是比较奇葩,直接上截图:
1、开启USB调试

2、选择USB配置,选择音频来源,奇葩吧

3、连接OK

收起阅读 »

nvue模式下动态class有时会失效的处理方法

nvue

这个问题也是偶尔出现,之前连续显示一排头像时,有时突然会发生一个头像的图片样式失效了,变得奇大无比。但是其他的头像都正常。查看代码并没有什么问题。但是仍然是偶尔出现,一旦出现,如果在同样的位置渲染的图也会一样的问题。百思不解。后我尝试将动态的class修改成动态的style就没这个问题了。此类问题也出现在其他地方。概率不高,但是偶尔就会出现。这个问题困扰了很久,如果刻意去测试还不太容易重现。估计是nvue的动态class的机制是不是在一些复杂的页面会有一些问题。分享给大家,避免踩坑。

继续阅读 »

这个问题也是偶尔出现,之前连续显示一排头像时,有时突然会发生一个头像的图片样式失效了,变得奇大无比。但是其他的头像都正常。查看代码并没有什么问题。但是仍然是偶尔出现,一旦出现,如果在同样的位置渲染的图也会一样的问题。百思不解。后我尝试将动态的class修改成动态的style就没这个问题了。此类问题也出现在其他地方。概率不高,但是偶尔就会出现。这个问题困扰了很久,如果刻意去测试还不太容易重现。估计是nvue的动态class的机制是不是在一些复杂的页面会有一些问题。分享给大家,避免踩坑。

收起阅读 »

Uni解析Krc酷狗歌词


const buffer = uni.base64ToArrayBuffer(contentBase64);  
            // var defArrayData = new Uint8Array(buffer);  
            // console.log(defArrayData);  
            //skip跳过4位  
            var slice = buffer.slice(4);  
            var zip_byte = new Uint8Array(slice);  

            //{'@', 'G', 'a', 'w', '^', '2', 't', 'G','Q', '6', '1', '-', 'Î', 'Ò', 'n', 'i'}  
            var key = [64, 71, 97, 119, 94, 50, 116, 71, 81, 54, 49, 45, 206, 210, 110, 105];  
            // console.log(zip_byte);  
            var j = zip_byte.length;  
            for (var k = 0; k < j; k++) {  
                var l = k % 16;  
                var tmp67_65 = k;  
                var tmp67_64 = zip_byte;  
                tmp67_64[tmp67_65] = tmp67_64[tmp67_65] ^ key[l];  
            }  
            //console.log(zip_byte);  
            var lrcContent = pako.ungzip(zip_byte, { to: 'string' }); //解压成字符串  
            // console.log(lrcContent);  
继续阅读 »

const buffer = uni.base64ToArrayBuffer(contentBase64);  
            // var defArrayData = new Uint8Array(buffer);  
            // console.log(defArrayData);  
            //skip跳过4位  
            var slice = buffer.slice(4);  
            var zip_byte = new Uint8Array(slice);  

            //{'@', 'G', 'a', 'w', '^', '2', 't', 'G','Q', '6', '1', '-', 'Î', 'Ò', 'n', 'i'}  
            var key = [64, 71, 97, 119, 94, 50, 116, 71, 81, 54, 49, 45, 206, 210, 110, 105];  
            // console.log(zip_byte);  
            var j = zip_byte.length;  
            for (var k = 0; k < j; k++) {  
                var l = k % 16;  
                var tmp67_65 = k;  
                var tmp67_64 = zip_byte;  
                tmp67_64[tmp67_65] = tmp67_64[tmp67_65] ^ key[l];  
            }  
            //console.log(zip_byte);  
            var lrcContent = pako.ungzip(zip_byte, { to: 'string' }); //解压成字符串  
            // console.log(lrcContent);  
收起阅读 »

mac下 /bin/bash: npm: command not found

macos 10.15 后就默认使用zsh,Hbuider确还是使用bash,导致node环境变量可能未配置。这个应该工具自己处理
编辑~/.bash_profile加下面三行

PATH=/usr/local/bin/:$PATH  
export PATH  
export NODE_PATH="/usr/local/lib/node"

这个社区感觉死气沉沉的,交流群也是.

继续阅读 »

macos 10.15 后就默认使用zsh,Hbuider确还是使用bash,导致node环境变量可能未配置。这个应该工具自己处理
编辑~/.bash_profile加下面三行

PATH=/usr/local/bin/:$PATH  
export PATH  
export NODE_PATH="/usr/local/lib/node"

这个社区感觉死气沉沉的,交流群也是.

收起阅读 »

video组件全屏时能显示视频标题吗

video

video组件全屏时能显示视频标题吗?有没有大佬能够在不重新写controls的情况下显示视频标题啊。不然为了显示个视频的标题得把进度条,手势操作都重新写一遍,好烦啊。官方就不能加一个这个功能吗,难道很复杂吗

video组件全屏时能显示视频标题吗?有没有大佬能够在不重新写controls的情况下显示视频标题啊。不然为了显示个视频的标题得把进度条,手势操作都重新写一遍,好烦啊。官方就不能加一个这个功能吗,难道很复杂吗

sentry for uniapp, 支持微信 支付宝 百度 抖音等小程序,并新增快应用的支持

用于小程序平台及快应用的 Sentry SDK

功能特点

  • [x] 基于 sentry-javascript 最新的基础模块 封装
  • [x] 遵守官方统一的 API 设计文档,使用方式和官方保持一致
  • [x] 使用 TypeScript 进行编写
  • [x] 包含 Sentry SDK(如:@sentry/browser)的所有基础功能
  • [x] 支持 ES6CommonJS 两种模块系统(支持小程序原生开发方式、使用小程序框架开发方式两种开发模式下使用)
  • [x] 默认监听并上报小程序的 onError、onUnhandledRejection、onPageNotFound、onMemoryWarning 事件返回的信息(各事件支持程度与对应各小程序官方保持一致)
  • [x] 默认上报运行小程序的设备、操作系统、应用版本信息
  • [x] 支持微信小程序
  • [x] 支持微信小游戏
  • [x] 支持字节跳动小程序
  • [x] 支持支付宝小程序
  • [x] 支持钉钉小程序
  • [x] 支持百度小程序
  • [x] 支持快应用
  • [x] 支持在 Taro 等第三方小程序框架中使用
  • [x] 默认上报异常发生时的路由栈
  • [ ] 完善的代码测试

支持两种使用方式:

  • 直接引用
  • 通过 npm 方式使用(推荐)

npm 方式

注意:目前字节跳动小程序不支持 npm 方式。

  1. 安装依赖

    npm install sentry-uniapp --save  
    # 或者  
    yarn add sentry-uniapp  
  2. 使用「微信开发者工具 - 工具 - 构建 npm」进行构建,详情可参考npm 支持

  3. app.js 中引用并初始化 Sentry,根据实际需求设置上报到 Sentry 的元信息

    import * as Sentry from "sentry-uniapp";  
    
    // init Sentry  
    // init options: https://github.com/getsentry/sentry-javascript/blob/master/packages/types/src/options.ts  
    Sentry.init({  
     dsn: "__DSN__",  
     // ...  
    });  
    
    // Set user information, as well as tags and further extras  
    Sentry.configureScope((scope) => {  
     scope.setExtra("battery", 0.7);  
     scope.setTag("user_mode", "admin");  
     scope.setUser({ id: "4711" });  
     // scope.clear();  
    });  
    
    // Add a breadcrumb for future events  
    Sentry.addBreadcrumb({  
     message: "My Breadcrumb",  
     // ...  
    });  
    
    // Capture exceptions, messages or manual events  
    Sentry.captureException(new Error("Good bye"));  
    Sentry.captureMessage("Hello, world!");  
    Sentry.captureEvent({  
     message: "Manual",  
     stacktrace: [  
       // ...  
     ],  
    });  

开发

知识储备

开发前请仔细阅读下面内容:

相关命令


# 根据 package.json 中的版本号更新 SDK 源码中的版本号  
npm run version  

# 构建供小程序直接引用的 sentry-uniapp.xx.min.js;在本地可直接使用开发者工具打开 examples 下具体项目进行调试  
npm run build:dist  

# 构建用于发布到 npm 的 dist & esm 资源  
npm run build  

# 构建用于发布到 npm 的 esm 资源  
npm run build:esm  
继续阅读 »

用于小程序平台及快应用的 Sentry SDK

功能特点

  • [x] 基于 sentry-javascript 最新的基础模块 封装
  • [x] 遵守官方统一的 API 设计文档,使用方式和官方保持一致
  • [x] 使用 TypeScript 进行编写
  • [x] 包含 Sentry SDK(如:@sentry/browser)的所有基础功能
  • [x] 支持 ES6CommonJS 两种模块系统(支持小程序原生开发方式、使用小程序框架开发方式两种开发模式下使用)
  • [x] 默认监听并上报小程序的 onError、onUnhandledRejection、onPageNotFound、onMemoryWarning 事件返回的信息(各事件支持程度与对应各小程序官方保持一致)
  • [x] 默认上报运行小程序的设备、操作系统、应用版本信息
  • [x] 支持微信小程序
  • [x] 支持微信小游戏
  • [x] 支持字节跳动小程序
  • [x] 支持支付宝小程序
  • [x] 支持钉钉小程序
  • [x] 支持百度小程序
  • [x] 支持快应用
  • [x] 支持在 Taro 等第三方小程序框架中使用
  • [x] 默认上报异常发生时的路由栈
  • [ ] 完善的代码测试

支持两种使用方式:

  • 直接引用
  • 通过 npm 方式使用(推荐)

npm 方式

注意:目前字节跳动小程序不支持 npm 方式。

  1. 安装依赖

    npm install sentry-uniapp --save  
    # 或者  
    yarn add sentry-uniapp  
  2. 使用「微信开发者工具 - 工具 - 构建 npm」进行构建,详情可参考npm 支持

  3. app.js 中引用并初始化 Sentry,根据实际需求设置上报到 Sentry 的元信息

    import * as Sentry from "sentry-uniapp";  
    
    // init Sentry  
    // init options: https://github.com/getsentry/sentry-javascript/blob/master/packages/types/src/options.ts  
    Sentry.init({  
     dsn: "__DSN__",  
     // ...  
    });  
    
    // Set user information, as well as tags and further extras  
    Sentry.configureScope((scope) => {  
     scope.setExtra("battery", 0.7);  
     scope.setTag("user_mode", "admin");  
     scope.setUser({ id: "4711" });  
     // scope.clear();  
    });  
    
    // Add a breadcrumb for future events  
    Sentry.addBreadcrumb({  
     message: "My Breadcrumb",  
     // ...  
    });  
    
    // Capture exceptions, messages or manual events  
    Sentry.captureException(new Error("Good bye"));  
    Sentry.captureMessage("Hello, world!");  
    Sentry.captureEvent({  
     message: "Manual",  
     stacktrace: [  
       // ...  
     ],  
    });  

开发

知识储备

开发前请仔细阅读下面内容:

相关命令


# 根据 package.json 中的版本号更新 SDK 源码中的版本号  
npm run version  

# 构建供小程序直接引用的 sentry-uniapp.xx.min.js;在本地可直接使用开发者工具打开 examples 下具体项目进行调试  
npm run build:dist  

# 构建用于发布到 npm 的 dist & esm 资源  
npm run build  

# 构建用于发布到 npm 的 esm 资源  
npm run build:esm  
收起阅读 »

插件开发 | 插件需求 | 个人接单 | 多年uni原生插件开发| iOS+Android 。插件定制,欢迎骚扰

uniapp原生插件 插件开发 外包 插件需求

插件开发 | 插件需求 | 个人接单 | 多年uni原生插件开发| iOS+Android | 插件定制 | uniapp | 欢迎骚扰

uni原生插件 ! 个人接单!多年uni原生插件开发,原生sdk接入,iOS+Android。uni插件 5+插件,

小程序,uni前端,也可以~

阿里

           阿里认证              |            阿里oss上传              |         阿里播放器            
           支付宝资金预授权    |       一键登录                    |       阿里云短视频                
          阿里云风险控制        |    

百度

           百度播放器           |          文字识别                 |       百度统计          
           离线人脸识别    

腾讯

          人脸识别        |            超级播放器                 |   IM单聊+离线推送       
          短视频编辑       |        短视频制作    

支付类

        中金支付         |        全民支付                        |      nihaooPay        
         latiPay             |         funsionPau                  |    adyen drop-in    
          聚富通支付      |    

国外

          stripe pay    |   google map 谷歌地图  |    twitter登录   |    facebook登录/分享         
          微软授权登录   |   FB AppEvents        |   FCM 谷歌推送   |    firebase授权登录     
         google 登录    

android平台

           迅雷下载无限速             |       屏蔽短信     |       屏蔽通知             |  usb 串口  |   呼叫转移          
         android分片上传(byte)     |      华视身份证   |     获取通话记录       |    广告机 关机 重启 设置系统时间     
            DLNA                             |     悬浮窗截屏       |     获取通知         |     hainaIOT               
     isProxy(是否使用代理)     |      录制PCM      |     soundtouch(变声)     |       pcm 降噪     
     无障碍微信朋友圈多图分享   |        矩阵识别      |        RDPOrigin          |         rfid                
              sicpay支付                   |     nihaoPay支付  |       ios 裁剪               |      字节美颜组件       
          linphone  sip    |      快手分享sdk     |          快手登录sdk     |       极光分享    |       极光短信        
           极光认证       |         极光统计         |         汉枫配网 (SmartLink  )       |     华为畅联(CaasKit)    
          助听器 耳返     |       otg 单反相机     |        TuyaSDK            |         Paddle文字识别            
            个推统计         |      自动通话录音       |       来电自动接听       |      mqtt双向认证         
            vpn                |          openvpn         |       禁止 app 联网       |        获取单反相机照片 Nikon    

ios 平台

       ios 后台播放               |     ios后台持续录音    |    ios后台定位      |      录制PCM     |   NFC读写        
        高精度图片扫码             |             矩阵识别        |       nihaoPay支付  |   ios  healthkit (健康)        
       NEHotspot(设置wifi)  |       ios 裁剪   |   阿里云短视频制作          |        快手分享sdk        
           快手登录sdk               |     汉枫配网 (SmartLink  )       |  助听器 耳返   |    个推统计      
         mqtt双向认证     |     vpn                |          openvpn         |    

工具类

          svga播放器   |    ios Wifi ssid   Wifi mac地址  |      高德导航组件   |    高德导航component         
          快递单号识别 读取  |      手机号码识别    |     经典蓝牙2.0     nRF DFU SDK  |   android dfu      
          ios dfu     |  蓝牙空中升级         |    ios 后台录音     
          虹软人脸识别     |     蓝牙耳机录音   |      摄像头预览组件    |          录制PCM     |      两端录屏       
           拦截截图      |        迅雷下载(不限速)      |      微信分享第三方来源      |        yuqueAD(广告)       
         mobAD(广告)    |        矩阵识别               |       助听器 耳返               |       友盟统计        
          个推统计 (个数统计)   |            自动通话录音       |       来电自动接听    |     控制其他app联网                      

音视频类
萤石云直播与回放 | 环信视频通话 | 美摄拍摄 | 环信音视频通话 | 音视频合成 | 腾讯推拉流

      金山云推拉流          |       美狐美颜        |       字节美颜      |      相芯美颜           |       相芯背景分割    

等等等等。。。。。

QQ 2253764427

QQ群 : 2253764427( uniapp原生插件开发 )

欢迎骚扰~

继续阅读 »

插件开发 | 插件需求 | 个人接单 | 多年uni原生插件开发| iOS+Android | 插件定制 | uniapp | 欢迎骚扰

uni原生插件 ! 个人接单!多年uni原生插件开发,原生sdk接入,iOS+Android。uni插件 5+插件,

小程序,uni前端,也可以~

阿里

           阿里认证              |            阿里oss上传              |         阿里播放器            
           支付宝资金预授权    |       一键登录                    |       阿里云短视频                
          阿里云风险控制        |    

百度

           百度播放器           |          文字识别                 |       百度统计          
           离线人脸识别    

腾讯

          人脸识别        |            超级播放器                 |   IM单聊+离线推送       
          短视频编辑       |        短视频制作    

支付类

        中金支付         |        全民支付                        |      nihaooPay        
         latiPay             |         funsionPau                  |    adyen drop-in    
          聚富通支付      |    

国外

          stripe pay    |   google map 谷歌地图  |    twitter登录   |    facebook登录/分享         
          微软授权登录   |   FB AppEvents        |   FCM 谷歌推送   |    firebase授权登录     
         google 登录    

android平台

           迅雷下载无限速             |       屏蔽短信     |       屏蔽通知             |  usb 串口  |   呼叫转移          
         android分片上传(byte)     |      华视身份证   |     获取通话记录       |    广告机 关机 重启 设置系统时间     
            DLNA                             |     悬浮窗截屏       |     获取通知         |     hainaIOT               
     isProxy(是否使用代理)     |      录制PCM      |     soundtouch(变声)     |       pcm 降噪     
     无障碍微信朋友圈多图分享   |        矩阵识别      |        RDPOrigin          |         rfid                
              sicpay支付                   |     nihaoPay支付  |       ios 裁剪               |      字节美颜组件       
          linphone  sip    |      快手分享sdk     |          快手登录sdk     |       极光分享    |       极光短信        
           极光认证       |         极光统计         |         汉枫配网 (SmartLink  )       |     华为畅联(CaasKit)    
          助听器 耳返     |       otg 单反相机     |        TuyaSDK            |         Paddle文字识别            
            个推统计         |      自动通话录音       |       来电自动接听       |      mqtt双向认证         
            vpn                |          openvpn         |       禁止 app 联网       |        获取单反相机照片 Nikon    

ios 平台

       ios 后台播放               |     ios后台持续录音    |    ios后台定位      |      录制PCM     |   NFC读写        
        高精度图片扫码             |             矩阵识别        |       nihaoPay支付  |   ios  healthkit (健康)        
       NEHotspot(设置wifi)  |       ios 裁剪   |   阿里云短视频制作          |        快手分享sdk        
           快手登录sdk               |     汉枫配网 (SmartLink  )       |  助听器 耳返   |    个推统计      
         mqtt双向认证     |     vpn                |          openvpn         |    

工具类

          svga播放器   |    ios Wifi ssid   Wifi mac地址  |      高德导航组件   |    高德导航component         
          快递单号识别 读取  |      手机号码识别    |     经典蓝牙2.0     nRF DFU SDK  |   android dfu      
          ios dfu     |  蓝牙空中升级         |    ios 后台录音     
          虹软人脸识别     |     蓝牙耳机录音   |      摄像头预览组件    |          录制PCM     |      两端录屏       
           拦截截图      |        迅雷下载(不限速)      |      微信分享第三方来源      |        yuqueAD(广告)       
         mobAD(广告)    |        矩阵识别               |       助听器 耳返               |       友盟统计        
          个推统计 (个数统计)   |            自动通话录音       |       来电自动接听    |     控制其他app联网                      

音视频类
萤石云直播与回放 | 环信视频通话 | 美摄拍摄 | 环信音视频通话 | 音视频合成 | 腾讯推拉流

      金山云推拉流          |       美狐美颜        |       字节美颜      |      相芯美颜           |       相芯背景分割    

等等等等。。。。。

QQ 2253764427

QQ群 : 2253764427( uniapp原生插件开发 )

欢迎骚扰~

收起阅读 »