至尊技术网 - uni-app 2023-06-27T21:42:00+08:00 Typecho https://www.zzwws.cn/feed/atom/tag/uni-app/ <![CDATA[uni-app 安卓锁屏后程序后台运行]]> https://www.zzwws.cn/archives/6410/ 2023-06-27T21:42:00+08:00 2023-06-27T21:42:00+08:00 悠悠楠杉 http://www.zzwws.cn 借助安卓的WakeLock机制,我们可以实现让APP在后台运行。实现代码如下:

var g_wakelock = null;  
//允许程序后台运行
function wakeLock() {  
    var main = plus.android.runtimeMainActivity();  
    var Context = plus.android.importClass("android.content.Context");  
    var PowerManager = plus.android.importClass("android.os.PowerManager");  
    var pm = main.getSystemService(Context.POWER_SERVICE);  
    g_wakelock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "ANY_NAME");  
    g_wakelock.acquire();  
}  

//结束程序后台运行  
function releaseWakeLock() {  
    if(g_wakelock != null && g_wakelock.isHeld()) {  
        g_wakelock.release();  
        g_wakelock = null;  
    }  
}  

在需要允许后台运行的时候调用wakeLock(),在希望停止的时候调用releaseWakeLock()

只需要程序后台运行,放到App.vue里的onLaunch

var g_wakelock = null;  
var main = plus.android.runtimeMainActivity();  
var Context = plus.android.importClass("android.content.Context");  
var PowerManager = plus.android.importClass("android.os.PowerManager");  
var pm = main.getSystemService(Context.POWER_SERVICE);  
g_wakelock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "ANY_NAME");  
g_wakelock.acquire(); 
]]>
<![CDATA[uni-app 部署到二级目录,打包H5空白页面或者刷新404]]> https://www.zzwws.cn/archives/6395/ 2023-04-28T09:37:45+08:00 2023-04-28T09:37:45+08:00 悠悠楠杉 http://www.zzwws.cn 部署到二级目录

打包H5空白页面或者刷新404

1、uni-app 打包H5空白页面或者刷新404,加入下面伪静态就可以解决了;
2、如果不想分2个域名去配置,想和后端thinkphp代码放在一起的话,可以在后端创建一个H5目录来放前端的文件,增加对应H5目录的伪静态重写规则,就可以正常访问了;
3、以下是伪静态的配置。

Nginx配置

location /h5/ {
  try_files $uri $uri/ /h5/index.html;
}

Apache配置
在h5目录里增加一个.htaccess文件

<IfModule mod_rewrite.c>
  Options +FollowSymlinks -Multiviews
  RewriteEngine On

  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ /h5/index.html [L] 
IfModule>

如果单独配置一个前端域名的话,域名指向是h5目录的话,重写规则不需要带/h5

]]>