姿势论坛app: https://bbs.zsxwz.com/thread-839.htm
分享几个有意思的代码。
安装腾讯x5内核: https://zsxwz.com/2019/02/03/fusion-app安装腾讯x5内核
1、清理缓存,设置一个点击事件。
os.execute("pm clear "..this.packageName) 弹出消息("清除缓存成功")
2、圆角侧滑栏,放在启动事件当中就可以了。侧滑栏宽度和高度可以自行修改。
import "java.io.File" import "android.text.format.Formatter"--获取文件夹大小function getFolderSize(folderPath,conversion) import "java.io.*" local size = 0 local fileList = luajava.astable(File(folderPath).listFiles()) if(fileList == nil) then return 0 end --开始遍历循环获取文件夹底下所有文件的字节大小 if(fileList ~= nil) then for count=1,#fileList do if(File(tostring(fileList[count])).isDirectory()) then size = size + getFolderSize(tostring(fileList[count])) else local singleFileSize = File(tostring(fileList[count])).length() size = size + singleFileSize end end end --字节换算 if(conversion == true) then local GB = 1024 * 1024 * 1024;--定义GB的计算常量 local MB = 1024 * 1024;--定义MB的计算常量 local KB = 1024;--定义KB的计算常量 local countResult = "" if(size / GB >= 1) then --如果当前Byte的值大于等于1GB countResult = string.format("%.2f",size / GB).."GB" return countResult elseif (size / MB >= 1) then --如果当前Byte的值大于等于1MB countResult = string.format("%.2f",size / MB).."MB" return countResult elseif (size / KB >= 1) then --如果当前Byte的值大于等于1KB countResult = string.format("%.2f",size / KB).."KB" return countResult else countResult = size.."B" return countResult end elseif(conversion == nil or conversion == false) then return size endend--x5视频缓存大于1000m自动清除if File("/sdcard/Android/data/"..this.packageName.."/files/VideoCache/main/").exists() or File("storage/emulated/0/Android/data/"..this.packageName.."/files/VideoCache/main/").exists()then if (getFolderSize("/sdcard/Android/data/"..this.packageName.."/files/VideoCache/main/",false)>1000000000) or (getFolderSize("/storage/emulated/0/Android/data/"..this.packageName.."/files/VideoCache/main/",false)>1000000000) then 执行Shell("rm -rf /sdcard/Android/data/"..this.packageName.."/files/VideoCache/main/") 执行Shell("rm -rf /storage/emulated/0/Android/data/"..this.packageName.."/files/VideoCache/main/") endend function CircleButton(view,InsideColor,radiu) import "android.graphics.drawable.GradientDrawable" drawable = GradientDrawable() drawable.setShape(GradientDrawable.RECTANGLE) drawable.setColor(InsideColor) drawable.setCornerRadii({radiu,radiu,radiu,radiu,radiu,radiu,radiu,radiu}); view.setBackgroundDrawable(drawable) end 角度=30--圆角弧度 控件id=sidebar 控件颜色=0xFFFFFFFF CircleButton(控件id,控件颜色,角度) linearParams = sidebar.getLayoutParams() linearParams.width =360--侧滑栏宽度 linearParams.height =900--侧滑栏高度 sidebar.setLayoutParams(linearParams) flt=sidebar.getLayoutParams( ) flt.setMargins(0, 300, 0, 0) sidebar.setLayoutParams(flt) --上下左右 --此处以悬浮按钮为例,id为fltBtn --flt=fltBtn.getLayoutParams( ) --flt.setMargins(1, 3, 1, 4) --fltBtn.setLayoutParams(flt) --边距dp值顺序:左,上,右,下 --tz=id.getLayoutParams() --tz.setMargins(x,y,x2,y2) --id.setLayoutParams(tz) --调整y和y2 --y是顶,y2是底 screenWidth=activity.getWidth() screenHeight=activity.getHeight() lp=sidebar.getLayoutParams() sidebar.setOnTouchListener(View.OnTouchListener{onTouch=function(v,e) if e.getAction() == MotionEvent.ACTION_DOWN then ry=e.getRawY() rx=e.getRawX() elseif e.getAction() == MotionEvent.ACTION_MOVE then dx=e.getRawX()-rx dy=e.getRawY()-ry top = v.getTop() + dy left = v.getLeft() + dx if top<=0 then top=0 end if top >= screenHeight - fltBtn.getHeight() then top = screenHeight - fltBtn.getHeight() end if left >= screenWidth - fltBtn.getWidth() then left = screenWidth - fltBtn.getWidth() end if left <= 0 then left = 0 end lp.leftMargin = left lp.topMargin = top sidebar.setLayoutParams(lp) ry=e.getRawY() rx=e.getRawX() end return true end --以上为圆角对话框 }) titleTvw.onLongClick=function() --输入对话框 InputLayout={ LinearLayout; orientation="vertical"; Focusable=true, FocusableInTouchMode=true, { TextView; id="Prompt", textSize="15sp", layout_marginTop="10dp"; layout_marginLeft="3dp", layout_width="80%w"; layout_gravity="center", text="将加载链接:"; }; { EditText; hint="请输入完整链接:"; layout_marginTop="5dp"; layout_width="80%w"; layout_gravity="center", id="edit"; text=webView.getUrl(); }; }; AlertDialog.Builder(this) .setTitle(webView.title) .setView(loadlayout(InputLayout)) .setPositiveButton("确定",{onClick=function(v) 加载网页(edit.text) end}) .setNegativeButton("取消",nil) .show() import "android.view.View$OnFocusChangeListener" edit.setOnFocusChangeListener(OnFocusChangeListener{ onFocusChange=function(v,hasFocus) if hasFocus then Prompt.setTextColor(0xFD009688) end end}) end
3、浏览器打开分享网页,设置点击事件。
分享文本(webView.getUrl())
4、去除顶部空白,有些网页删除一些空间之后顶部会有空白。scrollTop = 值,可以自己根据网页情况修改。放在启动事件当中。
javascript: if (document.getElementsByTagName('BODY')[0].scrollTop < 76) { document.getElementsByTagName('BODY')[0].scrollTop = 76; } else { return false; }
5、自适应手机屏幕,有些网页只有电脑版,需要自适应手机屏幕,方便浏览。放在启动文件当中。
javascript: var sc = document.createElement("meta"); sc.setAttribute("name", "viewport"); sc.setAttribute("content", "width=1000px, initial-scale=1, user-scalable=yes"); document.head.appendChild(sc);
6、检查更新。设置启动事件。
function 提示(内容) Toast.makeText(this, 内容,Toast.LENGTH_SHORT).show() end function 检测更新(Github地址) local dl=ProgressDialog.show(activity,nil,'更新检测中…') dl.show() local tt=Ticker() tt.start() packinfo=this.getPackageManager().getPackageInfo(this.getPackageName(),((1552294270/8/2-8392)/32/1250-25.25)/8-236) version=tostring(packinfo.versionName) versioncode=tostring(packinfo.versionCode) url=Github地址; function 过滤(content) 版本名=content:match("【版本名】(.-)【版本名】") 版本=content:match("【版本】(.-)【版本】") 内容=content:match("【内容】(.-)【内容】") 链接=content:match("【链接】(.-)【链接】") if(版本名==nil) then 版本名="获取失败" end if(版本==nil) then 版本="0" end if(内容==nil) then 内容="获取失败" end if(链接==nil) then 提示("服务器参数配置错误,请过段时间再次尝试") end if(版本 > versioncode) then dl.dismiss() tt.stop() 对话框() .设置标题("检测到更新") .设置消息("版本:"..version.."→"..版本名.."\n更新内容:"..内容) .设置积极按钮("下载更新",function() 下载文件(链接) 提示("下载更新中…") end) .设置消极按钮("取消更新") .显示() else dl.dismiss() tt.stop() 提示("当前已是最新版本!") end end Http.get(url,nil,"UTF-8",nil,function(code,content,cookie,header) if(code==200 and content)then 过滤(content) else dl.dismiss() tt.stop() 提示("本地网络或服务器异常 "..code) end end) end 检测更新("https://远程服务器网址/app.txt")
远程服务器创建app.txt。
【版本名】1.1.1【版本名】【版本】1【版本】【内容】无 【内容】【链接】更新链接【链接】
7、分享一个ua,对于屏蔽一些网页广告还是用得上的,当然也不可能全部屏蔽。
Mozilla/5.0 (BlackBerry; U; BlackBerry 9700; en-US) AppleWebKit/534.8+ (KHTML, like Gecko) Version/6.0.0.448 Mobile Safari/534.8+