HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

南京本地uni-app开发者交流群 849615397 南京本地乐于分享的uni-app开发者请进群交流

南京本地uni-app开发者交流群 849615397,相互学习、南京本地乐于分享的uni-app开发者请进群交流。

南京本地uni-app开发者交流群 849615397,相互学习、南京本地乐于分享的uni-app开发者请进群交流。

20190923

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<link rel="stylesheet" href="css/font-awesome-4.7.0/css/font-awesome.css" />
<style>
*{margin: 0;padding: 0;}
body{width: 100%;height: 100%;background: url(img/section_mobile_bg.jpg);font-size: 14px;}

mobile{padding: 30px 0;text-align: center;}

        #mobile h3{font-family: "arial rounded mt bold";font-size: 10rem;color: #fff;font-style: italic;  
        text-shadow:5px 5px 0.3rem #62819d}  
        #mobile.list i{font-size: 3rem;color: #fff;padding: 2rem;}  
        #mobile.list h5{font-size: 1rem;color: #fff;}  

    </style>  
</head>  
<body>  
    <section id="mobile">  
        <div class="section-inner">  
            <h3>One World</h3>  
            <h2>万物互联,极致体验</h2>  
            <div class="col-md-3 col-xs-6"><i class="fa fa-apple"></i><h2>原生移动app开发</h2></div>  
            <div class="col-md-3 col-xs-6"><i class="fa fa-weixin"></i><h2>微信公众平台开发</h2></div>  
            <div class="col-md-3 col-xs-6"><i class="fa fa-desktop"></i><h2>网站开发</h2></div>  
            <div class="col-md-3 col-xs-6"><i class="fa fa-laptop"></i><h2>桌面应用开发</h2></div>  
        </div>  
    </section>  

</body>  

</html>

继续阅读 »

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<link rel="stylesheet" href="css/font-awesome-4.7.0/css/font-awesome.css" />
<style>
*{margin: 0;padding: 0;}
body{width: 100%;height: 100%;background: url(img/section_mobile_bg.jpg);font-size: 14px;}

mobile{padding: 30px 0;text-align: center;}

        #mobile h3{font-family: "arial rounded mt bold";font-size: 10rem;color: #fff;font-style: italic;  
        text-shadow:5px 5px 0.3rem #62819d}  
        #mobile.list i{font-size: 3rem;color: #fff;padding: 2rem;}  
        #mobile.list h5{font-size: 1rem;color: #fff;}  

    </style>  
</head>  
<body>  
    <section id="mobile">  
        <div class="section-inner">  
            <h3>One World</h3>  
            <h2>万物互联,极致体验</h2>  
            <div class="col-md-3 col-xs-6"><i class="fa fa-apple"></i><h2>原生移动app开发</h2></div>  
            <div class="col-md-3 col-xs-6"><i class="fa fa-weixin"></i><h2>微信公众平台开发</h2></div>  
            <div class="col-md-3 col-xs-6"><i class="fa fa-desktop"></i><h2>网站开发</h2></div>  
            <div class="col-md-3 col-xs-6"><i class="fa fa-laptop"></i><h2>桌面应用开发</h2></div>  
        </div>  
    </section>  

</body>  

</html>

收起阅读 »

致dcloud团队--能不能有点责任心

更新了一下版本,2.2.0与2.3.0直接,具体哪个版本我也不细看了。然后打包一份代码去线上。一大堆接口报错。花了整整一上午定位为题。后面弹出有新版本,手贱更新到了2.3.2版本。发现所有的问题奇迹般的好了。后来发现是之前的版本把我的请求方式换成了json。我需要的是formData。

这只是其中一次升级遇到的问题,这次我定位问题话的时间最多就吐槽一下。每次升级都有写小问题,能不能把概率降下来。

继续阅读 »

更新了一下版本,2.2.0与2.3.0直接,具体哪个版本我也不细看了。然后打包一份代码去线上。一大堆接口报错。花了整整一上午定位为题。后面弹出有新版本,手贱更新到了2.3.2版本。发现所有的问题奇迹般的好了。后来发现是之前的版本把我的请求方式换成了json。我需要的是formData。

这只是其中一次升级遇到的问题,这次我定位问题话的时间最多就吐槽一下。每次升级都有写小问题,能不能把概率降下来。

收起阅读 »

Native.js 获取4G网络/数据网络 IP地址

Native.JS

Native.js 获取4G网络/数据网络 IP地址

Java代码

/**  
 * @Title: getIpAddress  
 *    
 * @Description: 获取设备ip地址  
 *    
 * @return String  
 */  
public static String getIpAddress() {  
    try {  
        for (Enumeration<NetworkInterface> enNetI = NetworkInterface.getNetworkInterfaces(); enNetI.hasMoreElements();) {  
            NetworkInterface netI = enNetI.nextElement();  
            for (Enumeration<InetAddress> enumIpAddr = netI.getInetAddresses();enumIpAddr.hasMoreElements();) {  
            InetAddress inetAddress = enumIpAddr.nextElement();  
                if (inetAddress instanceof Inet4Address && !inetAddress.isLoopbackAddress()) {  
                    return inetAddress.getHostAddress();  
                }  
            }  
        }  
    } catch (SocketException e) {  
        e.printStackTrace();  
    }  
    return "";  
}

转换为JS代码

// 导入网络接口类  
var NetworkInterface = plus.android.importClass("java.net.NetworkInterface")  

// 导入InetAddress类  
var InetAddress = plus.android.importClass("java.net.InetAddress")  

// 导入Inet4Address类  
var Inet4Address = plus.android.importClass("java.net.Inet4Address")  

// 定义变量,获取网络接口  
var networkInterface = NetworkInterface.getNetworkInterfaces()  

// 遍历网络接口  
while (plus.android.invoke(networkInterface, 'hasMoreElements')) {  
    var networkInterfaceElement = plus.android.invoke(networkInterface, 'nextElement')  

     // 获取各个网络接口的地址  
    var inetAddresses = plus.android.invoke(networkInterfaceElement, 'getInetAddresses')  

     // 遍历从各个网络接口获取的地址  
    while (plus.android.invoke(inetAddresses, 'hasMoreElements')) {  
        var inetAddressesElement = plus.android.invoke(inetAddresses, 'nextElement')  

        // 判断获取的地址不是环回接口的地址并且属于IPv4地址  
        if (!plus.android.invoke(inetAddressesElement, 'isLoopbackAddress') && inetAddressesElement instanceof Inet4Address) {  
            console.log(plus.android.invoke(inetAddressesElement, 'getHostAddress'))  

            // 获取主机地址  
            this.ipAddress = plus.android.invoke(inetAddressesElement, 'getHostAddress')  
        }  
    }  
}

参考CSDN

Android获取当前网络状态和获取当前设备网络ip地址 - yc的博客 - CSDN博客
Android获取如何获取当前手机IP地址 - 程龙的博客 - CSDN博客
Android获取IP地址的两种方式(准确版) - sinat_16458039的博客 - CSDN博客
android手机两种方式获取IP地址 - 安卓吧 - 博客园

问答

Native.js获取android有线网络IP地址

继续阅读 »

Native.js 获取4G网络/数据网络 IP地址

Java代码

/**  
 * @Title: getIpAddress  
 *    
 * @Description: 获取设备ip地址  
 *    
 * @return String  
 */  
public static String getIpAddress() {  
    try {  
        for (Enumeration<NetworkInterface> enNetI = NetworkInterface.getNetworkInterfaces(); enNetI.hasMoreElements();) {  
            NetworkInterface netI = enNetI.nextElement();  
            for (Enumeration<InetAddress> enumIpAddr = netI.getInetAddresses();enumIpAddr.hasMoreElements();) {  
            InetAddress inetAddress = enumIpAddr.nextElement();  
                if (inetAddress instanceof Inet4Address && !inetAddress.isLoopbackAddress()) {  
                    return inetAddress.getHostAddress();  
                }  
            }  
        }  
    } catch (SocketException e) {  
        e.printStackTrace();  
    }  
    return "";  
}

转换为JS代码

// 导入网络接口类  
var NetworkInterface = plus.android.importClass("java.net.NetworkInterface")  

// 导入InetAddress类  
var InetAddress = plus.android.importClass("java.net.InetAddress")  

// 导入Inet4Address类  
var Inet4Address = plus.android.importClass("java.net.Inet4Address")  

// 定义变量,获取网络接口  
var networkInterface = NetworkInterface.getNetworkInterfaces()  

// 遍历网络接口  
while (plus.android.invoke(networkInterface, 'hasMoreElements')) {  
    var networkInterfaceElement = plus.android.invoke(networkInterface, 'nextElement')  

     // 获取各个网络接口的地址  
    var inetAddresses = plus.android.invoke(networkInterfaceElement, 'getInetAddresses')  

     // 遍历从各个网络接口获取的地址  
    while (plus.android.invoke(inetAddresses, 'hasMoreElements')) {  
        var inetAddressesElement = plus.android.invoke(inetAddresses, 'nextElement')  

        // 判断获取的地址不是环回接口的地址并且属于IPv4地址  
        if (!plus.android.invoke(inetAddressesElement, 'isLoopbackAddress') && inetAddressesElement instanceof Inet4Address) {  
            console.log(plus.android.invoke(inetAddressesElement, 'getHostAddress'))  

            // 获取主机地址  
            this.ipAddress = plus.android.invoke(inetAddressesElement, 'getHostAddress')  
        }  
    }  
}

参考CSDN

Android获取当前网络状态和获取当前设备网络ip地址 - yc的博客 - CSDN博客
Android获取如何获取当前手机IP地址 - 程龙的博客 - CSDN博客
Android获取IP地址的两种方式(准确版) - sinat_16458039的博客 - CSDN博客
android手机两种方式获取IP地址 - 安卓吧 - 博客园

问答

Native.js获取android有线网络IP地址

收起阅读 »

推荐一个纯js的二维码生成与解析开源库

开源 二维码

jsQR 是一个纯 JavaScript 二维码解析库。该库读取原始图像或者是摄像头,并将定位,提取和解析其中的任何QR码。Apache License 2.0协议。jsQR旨在成为一个完全独立的扫描QR码库。根据设计,它不包含任何特定于平台的代码。这使得它可以轻松扫描前端网络摄像头流,用户上传的图像,或者用作后端Node.js过程的一部分。如果要使用jsQR扫描网络摄像头流,则需要ImageData从视频流中提取。然后可以将其传递给jsQR。

官方说明地址:https://www.oschina.net/p/jsqr(这是开源中国网站上的,需要注册)
DEMO地址:https://cozmo.github.io/jsQR/,需要允许摄像头权限,可发到手机上浏览器打开测试。
开源库地址:https://github.com/cozmo/jsQR

该js可以直接识别视频流或图片中的二维码;但是当前HbuilderX不支持实时获取摄像头视频流,希望以后能够添加摄像头实时视频流获取的功能。

继续阅读 »

jsQR 是一个纯 JavaScript 二维码解析库。该库读取原始图像或者是摄像头,并将定位,提取和解析其中的任何QR码。Apache License 2.0协议。jsQR旨在成为一个完全独立的扫描QR码库。根据设计,它不包含任何特定于平台的代码。这使得它可以轻松扫描前端网络摄像头流,用户上传的图像,或者用作后端Node.js过程的一部分。如果要使用jsQR扫描网络摄像头流,则需要ImageData从视频流中提取。然后可以将其传递给jsQR。

官方说明地址:https://www.oschina.net/p/jsqr(这是开源中国网站上的,需要注册)
DEMO地址:https://cozmo.github.io/jsQR/,需要允许摄像头权限,可发到手机上浏览器打开测试。
开源库地址:https://github.com/cozmo/jsQR

该js可以直接识别视频流或图片中的二维码;但是当前HbuilderX不支持实时获取摄像头视频流,希望以后能够添加摄像头实时视频流获取的功能。

收起阅读 »

uni-app App端 iOS13 无法滚动的解决方案

iOS13

老版uni-app iOS App,在iOS13上会有页面无法上下滚动的问题。
需要开发者及时升级处理。
(5+App/wap2app不涉及此问题)

方式1. 升级到HBuilderX 最新版

如果是本地打包,或cli项目,同样升级到最新的匹配版本
重新打包ipa包,提交Appstore审核
对于老用户,如果你之前留有升级策略控制,那么应该判断如果是iOS13则强制引导用户去Appstore升级。

此方式除了解决不能滚动的问题,还解决了其他一些iOS适配问题,如状态栏前景颜色、状态栏高度获取等细节。

对于使用非自定义组件编译模式的应用,升级HBuilderX还不够,还需要升级适配自定义组件编译模式,否则iOS13上还是无法滚动。

方式2. 不升级HBuilderX或通过wgt更新处理此问题

如果你的app无法短时间内升级HBuilderX,或者希望用wgt更新来强迫用户升级,可以使用如下方式

  1. 在 HBuilderX 安装目录搜索并找到 uniappview.html 文件(Mac:HBuilderX.app/Contents/HBuilderX/plugins/weapp-tools/template/common/uniappview.html;Windows:HBuilderX\plugins\weapp-tools\template\common__uniappview.html)
  2. 打开 __uniappview.html 文件,进行编辑
  3. <script src="__uniappes6.js"></script> 前插入如下代码
    <script>  
    (function() {  
    if (typeof plus === 'object' && plus.os.name === 'iOS') {  
      var time = 0  
      document.addEventListener('touchstart', function(event) {  
        time = Date.now()  
      }, {  
        passive: true  
      })  
      var webview = plus.webview.currentWebview()  
      webview.__origin_getStyle = webview.getStyle  
      webview.getStyle = function() {  
        if (Date.now() - time > 100) {  
          return this.__origin_getStyle()  
        }  
      }  
    }  
    })()  
    </script>

插入后效果:

修改完成后,重新编译项目即可。可在HBuilderX发行菜单中制作wgt资源进行热更新。

这种方式仅作为临时使用,解决iOS13不能滚动的问题。其他有些细节体验问题,还需完整升级HBuilderX、重新打ipa包提交才能解决。
此方案适用于由于某些原因不能升级 HBuilderX 的用户,用以临时解决 iOS13 上页面无法滚动的问题,请大家尽快升级新版 HBuilderX。
非自定义组件模式,如果不能及时升级为自定义组件模式,也可使用方案2来解决滚动问题。

升级HBuilderX 2.3新版可能会遇到其他问题,见社区公告。

继续阅读 »

老版uni-app iOS App,在iOS13上会有页面无法上下滚动的问题。
需要开发者及时升级处理。
(5+App/wap2app不涉及此问题)

方式1. 升级到HBuilderX 最新版

如果是本地打包,或cli项目,同样升级到最新的匹配版本
重新打包ipa包,提交Appstore审核
对于老用户,如果你之前留有升级策略控制,那么应该判断如果是iOS13则强制引导用户去Appstore升级。

此方式除了解决不能滚动的问题,还解决了其他一些iOS适配问题,如状态栏前景颜色、状态栏高度获取等细节。

对于使用非自定义组件编译模式的应用,升级HBuilderX还不够,还需要升级适配自定义组件编译模式,否则iOS13上还是无法滚动。

方式2. 不升级HBuilderX或通过wgt更新处理此问题

如果你的app无法短时间内升级HBuilderX,或者希望用wgt更新来强迫用户升级,可以使用如下方式

  1. 在 HBuilderX 安装目录搜索并找到 uniappview.html 文件(Mac:HBuilderX.app/Contents/HBuilderX/plugins/weapp-tools/template/common/uniappview.html;Windows:HBuilderX\plugins\weapp-tools\template\common__uniappview.html)
  2. 打开 __uniappview.html 文件,进行编辑
  3. <script src="__uniappes6.js"></script> 前插入如下代码
    <script>  
    (function() {  
    if (typeof plus === 'object' && plus.os.name === 'iOS') {  
      var time = 0  
      document.addEventListener('touchstart', function(event) {  
        time = Date.now()  
      }, {  
        passive: true  
      })  
      var webview = plus.webview.currentWebview()  
      webview.__origin_getStyle = webview.getStyle  
      webview.getStyle = function() {  
        if (Date.now() - time > 100) {  
          return this.__origin_getStyle()  
        }  
      }  
    }  
    })()  
    </script>

插入后效果:

修改完成后,重新编译项目即可。可在HBuilderX发行菜单中制作wgt资源进行热更新。

这种方式仅作为临时使用,解决iOS13不能滚动的问题。其他有些细节体验问题,还需完整升级HBuilderX、重新打ipa包提交才能解决。
此方案适用于由于某些原因不能升级 HBuilderX 的用户,用以临时解决 iOS13 上页面无法滚动的问题,请大家尽快升级新版 HBuilderX。
非自定义组件模式,如果不能及时升级为自定义组件模式,也可使用方案2来解决滚动问题。

升级HBuilderX 2.3新版可能会遇到其他问题,见社区公告。

收起阅读 »

ios远程打包时出现“导入.p12证书失败”一定要检查一下这个原因

云端打包 云端打包发布常见问题

巨坑,兄弟们
当你所有证书都正常,所有步骤都正常的情况下,
提示导入证书失败,请务必检查你的证书密码里是否包含了“$”字符串!!!

巨坑,兄弟们
当你所有证书都正常,所有步骤都正常的情况下,
提示导入证书失败,请务必检查你的证书密码里是否包含了“$”字符串!!!

使用mui实现的省市区三级联动

mui

由于在项目中有使用到省市区选择,但是,mui所提供的选择器确实有点难选啊有木有?所以个人就做了一个有点简陋的联动选择。
github地址:https://github.com/MistyicCrray/city_pick.git
先上截图


使用时运行pick文件的pick.html即可,若需要改动也可以在js文件中进行修改,城市的数据已经封装在js文件夹的city-data3.js中。

继续阅读 »

由于在项目中有使用到省市区选择,但是,mui所提供的选择器确实有点难选啊有木有?所以个人就做了一个有点简陋的联动选择。
github地址:https://github.com/MistyicCrray/city_pick.git
先上截图


使用时运行pick文件的pick.html即可,若需要改动也可以在js文件中进行修改,城市的数据已经封装在js文件夹的city-data3.js中。

收起阅读 »

iOS上架被拒准则2.1-性能-应用程序完整性问题

iOS iOS打包

很多开发者上架遇到这个问题,苹果那边打不开APP,加载不出来内容!

很多人以为是没有兼容ipad,其实是苹果审核都用ipad,跟有没有支持兼容没有关系。

如果自己在国内测试加载正常,要看APP服务器是否支持国外访问,因为苹果审核在国外,自己用国外网络测试看下!!

具体反馈翻译内容

准则2.1-性能-应用程序完整性

我们在运行Wi-Fi iOS 12.4.1的iPad上查看您的应用程序时发现一个或多个错误。

具体来说,我们无法在应用程序中加载某些内容。

下一步

若要解决此问题,请在设备上运行应用程序以确定任何问题,然后修订并重新提交应用程序以供审阅。

如果我们误解了您的应用程序的预期行为,请在Resolution Center中回复此消息,以提供有关这些功能的预期工作方式的信息。

对于新应用程序,请从设备中卸载所有以前版本的应用程序,然后安装并按照步骤重现问题。对于更新,请将新版本安装为对以前版本的更新,然后按照步骤重现问题。

资源

有关测试应用程序并准备进行审阅的信息,请参阅技术说明TN2431:应用程序测试指南。

有关网络概述,请查看有关网络的信息

继续阅读 »

很多开发者上架遇到这个问题,苹果那边打不开APP,加载不出来内容!

很多人以为是没有兼容ipad,其实是苹果审核都用ipad,跟有没有支持兼容没有关系。

如果自己在国内测试加载正常,要看APP服务器是否支持国外访问,因为苹果审核在国外,自己用国外网络测试看下!!

具体反馈翻译内容

准则2.1-性能-应用程序完整性

我们在运行Wi-Fi iOS 12.4.1的iPad上查看您的应用程序时发现一个或多个错误。

具体来说,我们无法在应用程序中加载某些内容。

下一步

若要解决此问题,请在设备上运行应用程序以确定任何问题,然后修订并重新提交应用程序以供审阅。

如果我们误解了您的应用程序的预期行为,请在Resolution Center中回复此消息,以提供有关这些功能的预期工作方式的信息。

对于新应用程序,请从设备中卸载所有以前版本的应用程序,然后安装并按照步骤重现问题。对于更新,请将新版本安装为对以前版本的更新,然后按照步骤重现问题。

资源

有关测试应用程序并准备进行审阅的信息,请参阅技术说明TN2431:应用程序测试指南。

有关网络概述,请查看有关网络的信息

收起阅读 »

公告:升级 HBuilderX 2.3.0 后 uni-icon 不显示的问题

uni_ui uniapp

H5 平台新增内置 icon 组件,项目中使用 uni-uiuni-icon 组件时,会与内置组件命名冲突,导致老项目升级上来的用户 uni-icon 无法显示。

解决办法:

在引用组件的时候,给 uni-icon 起个别名(如 import uniIcons from '@/components/uni-icon' ),新版 uni-ui 中已更名为 uni-icons

需要注意的是,个别uni-ui组件,依赖了 uni-icons ,该组件引用也需要修改,或者升级该组件为最新即可。

继续阅读 »

H5 平台新增内置 icon 组件,项目中使用 uni-uiuni-icon 组件时,会与内置组件命名冲突,导致老项目升级上来的用户 uni-icon 无法显示。

解决办法:

在引用组件的时候,给 uni-icon 起个别名(如 import uniIcons from '@/components/uni-icon' ),新版 uni-ui 中已更名为 uni-icons

需要注意的是,个别uni-ui组件,依赖了 uni-icons ,该组件引用也需要修改,或者升级该组件为最新即可。

收起阅读 »

destoon二次开发、模板仿制、数据调用、伪静态、二级域名设置

提供B2B网站建设、二次开发、模板仿制服务
提供destoon b2b 网站建设、二次开发、模板仿制

详情咨询QQ&微信:1807852687

提供B2B网站建设、网站二次开发、模板仿制、数据调用、标签调用
提供网站首页修改、网站改版、网站调整、BUG修复、网站升级、伪静态设置、二级域名等
提供服务器环境安装、搭建、程序安装,服务器维护监管、长期合作
提供网站运营合作、指导、顾问咨询、长期合作!
其他更多深入合作支持,加微信咨询!

继续阅读 »

提供B2B网站建设、二次开发、模板仿制服务
提供destoon b2b 网站建设、二次开发、模板仿制

详情咨询QQ&微信:1807852687

提供B2B网站建设、网站二次开发、模板仿制、数据调用、标签调用
提供网站首页修改、网站改版、网站调整、BUG修复、网站升级、伪静态设置、二级域名等
提供服务器环境安装、搭建、程序安装,服务器维护监管、长期合作
提供网站运营合作、指导、顾问咨询、长期合作!
其他更多深入合作支持,加微信咨询!

收起阅读 »

【分享】监听subNVue的show和hide事件的方法

subnvue popup

使用uniapp做开发,时不时会遇到困难。遇到困难时,可以在Dcloud社区和QQ群提问。但Dcloud官方分配于解答开发者疑问的力量远远不足,大多数提问根本不会得到任何回复。我是个暴脾气,很多时候气得捶足顿胸。但那又怎样呢,不回复就是不回复。

以前,我对这个问题只会抱怨。后来,我想通了:自己对社区并没有太多贡献,凭什么社区无偿为你解答问题?如果每个人都愿意花一点时间,主动在社区发布一些经验分享,或者回复一些他人遇到而自己已有解决方案的问题,那么社区的质量就会提升,下次遇到问题时,在社区搜索答案就更容易命中有效答案了。

所以,从现在开始,以后但凡有些许有价值的经验总结,哪怕价值很小很小,我都会发布到社区。虽然个人的能力非常有限,解决不了很大的问题,只能从小处着手,但兴许对未来的某一个人有用呢?


以下是正文

用subNVue做popup是非常完美的方案。美中不足的是,uniapp的subNVue并未提供show和hide事件,以至用subNVue做的popup,无法进行有效的初始化。

这里提供一个监听subNVue(或popup)的show和hide事件的办法。

具体做法

在subNVue页面的js代码中,在onLoad方法(uni-app编译模式适用。如果是week编译模式,可改为beforeCreate方法)内添加如下js代码:

uni.getCurrentSubNVue().addEventListener("show", function() {  
    console.log("subNVue子窗体已显示!")  
});  
uni.getCurrentSubNVue().addEventListener("hide", function() {  
    console.log("subNVue子窗体已隐藏!")  
});

完美解决!

继续阅读 »

使用uniapp做开发,时不时会遇到困难。遇到困难时,可以在Dcloud社区和QQ群提问。但Dcloud官方分配于解答开发者疑问的力量远远不足,大多数提问根本不会得到任何回复。我是个暴脾气,很多时候气得捶足顿胸。但那又怎样呢,不回复就是不回复。

以前,我对这个问题只会抱怨。后来,我想通了:自己对社区并没有太多贡献,凭什么社区无偿为你解答问题?如果每个人都愿意花一点时间,主动在社区发布一些经验分享,或者回复一些他人遇到而自己已有解决方案的问题,那么社区的质量就会提升,下次遇到问题时,在社区搜索答案就更容易命中有效答案了。

所以,从现在开始,以后但凡有些许有价值的经验总结,哪怕价值很小很小,我都会发布到社区。虽然个人的能力非常有限,解决不了很大的问题,只能从小处着手,但兴许对未来的某一个人有用呢?


以下是正文

用subNVue做popup是非常完美的方案。美中不足的是,uniapp的subNVue并未提供show和hide事件,以至用subNVue做的popup,无法进行有效的初始化。

这里提供一个监听subNVue(或popup)的show和hide事件的办法。

具体做法

在subNVue页面的js代码中,在onLoad方法(uni-app编译模式适用。如果是week编译模式,可改为beforeCreate方法)内添加如下js代码:

uni.getCurrentSubNVue().addEventListener("show", function() {  
    console.log("subNVue子窗体已显示!")  
});  
uni.getCurrentSubNVue().addEventListener("hide", function() {  
    console.log("subNVue子窗体已隐藏!")  
});

完美解决!

收起阅读 »