精
[一叶花开]FA高级进阶教程--版本在线更新,about添检测更新,去除页面广告! |
|
一叶花开
逍遥公子
L9
• 2020-03-28 • 回复 12 • 最后编辑于2020-03-28 14:38 • 只看楼主
• 举报
|
Fusion APP,一款由寒歌开发的网页封包APP!
关于Fa的基础性教程,社区内已有人发布过了
软件地址:https://bbs.leyuxyz.com/t/171048
@Vic丶自由羽 教程如下:
https://bbs.leyuxyz.com/t/172204
https://bbs.leyuxyz.com/t/172232
https://bbs.leyuxyz.com/t/172239
第一部分:版本在线更新检测1.0--注册账户获取ID
打开网址:https://aus.nowtime.cc/→ 注册账户 → 获取ID
添加软件
记住ID (后续用到)
PS : 利用平台可进行软件更新、发布通知公告等一系列在线操作
将apk下载链接转化为直链后添加到更新界面,即可直接实现无跳转后台更新
ps:该站点为内侧站点,相应代码后续公布
第一部分:版本在线更新检测2.0--添加启动代码
打开Fa 创建app 名字 和 包名可自定义
配置→启动程序→添加一下代码
import "android.content.Intent"
import "android.net.Uri"
import "android.provider.Settings"
import "android.app.ProgressDialog"
import "android.app.AlertDialog"
local appid = 10000--这里填写你刚才注册的ID
local packinfo = this.getPackageManager().getPackageInfo(this.getPackageName(),((32552732/2/2-8183)/10000-6-231)/9)
local appinfo = this.getPackageManager().getApplicationInfo(this.getPackageName(),0)
local versionName = tostring(packinfo.versionName)-- 版本名(cc.nowtime)
local versionCode = tonumber(packinfo.versionCode)-- 版本号(10010)
local check_update_url = "https://aus.nowtime.cc/api/query/update?appid="..appid.."&version_code="..versionCode
if(activity.getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE).getActiveNetworkInfo() == nil) then
AlertDialog.Builder(this)
.setTitle("提示")
.setMessage("你未连接至互联网 或 当前连接的网络不可用,请检查你的网络设置")
.setNeutralButton("确定",nil)
.setNegativeButton("打开 数据连接",{onClick=function()
intent = Intent(Settings.ACTION_DATA_ROAMING_SETTINGS)
this.startActivity(intent)
end})
.setPositiveButton("连接 Wi-Fi",{onClick=function()
intent = Intent(Settings.ACTION_WIFI_SETTINGS)
this.startActivity(intent)
end})
.show();
return false
-- 就此中断,不再继续执行下面代码
end
Http.get(check_update_url,nil,"UTF-8",nil,function(http_code,content,cookie,header)
-- check_update_dialog.hide()
if (http_code == -1) then
else
code = tonumber(string.match(content,'"code":(.-),'))-- 状态码
msg = string.match(content,'"msg":"(.-)"')-- 消息
--Q1768045871
if(code == 200) then
new_versionCode = tonumber(string.match(content,'"version_code":(.-),'))--版本号
new_versionName = string.match(content,'"version_name":"(.-)"')--版本名
apk_url = string.gsub(string.match(content,'"apk_url":"(.-)"'),'\\','')--下载地址
update_log = string.gsub(string.match(content,'"update_log":"(.-)"'),'\\n',"\n")--更新日志
update_date = string.match(content,'"update_time":"(.-)"')--发布更新时间
if (new_versionCode > versionCode) then
AlertDialog.Builder(this)
.setTitle("发现新版本")
.setCancelable(false)
.setMessage("当前版本:V"..versionName.." ("..versionCode..")\n最新版本:V"..new_versionName.." ("..new_versionCode..")\n版本发布时间:"..update_date.."\n\n更新日志:\n"..update_log)
.setPositiveButton("内部下载",{onClick=function()
print"暂无,关注一叶花开 后续分享直链下载"
end})
.setNeutralButton("联系作者",{onClick=function()
联系Q(1768045871)
退出程序()
end})
.setNegativeButton("外部下载",{onClick=function()
print("请选择一个应用或浏览器打开")
intent = Intent("android.intent.action.VIEW")
intent .setData(Uri.parse(apk_url))
this.startActivity(Intent.createChooser(intent, "请选择一个应用或浏览器用以下载最新版 APP"))
print("请在下载安装新版APP后重新启动")
退出程序()
end})
.show()
else
-- AlertDialog.Builder(this)
-- .setTitle("无可用更新")
-- .setMessage("您使用的是最新版本!\n当前版本:"..versionName.."("..versionCode..")\n最新版本:"..new_versionName.."("..new_versionCode..")")
-- .setPositiveButton("知道啦",nil)
-- .show() 这是强制下载框 不喜可删
end
else
AlertDialog.Builder(this)
.setTitle("检查更新失败")
.setMessage("检查更新失败!以下是错误信息:\n\nERROR_CODE:"..code.."\nERROR_MSG:"..msg)
.setPositiveButton("确定",nil)
.show()
end
end
end)
修改ID代码中已注释(测试图 ps 图片如有差异 自行修改)
版本更新方法:打开https://aus.nowtime.cc/ 登录发布新版本即可 ps:发布的版本一定要大于fa 打包APP的版本
第一部分:版本在线更新检测完结撒花~ 关注@一叶花开 点赞评论 thanks~
第二部分:关于页面添加更新检测
在子页面中添加关于界面→关于页面启动项添加代码如下代码 这个代码已经包含布局(布局可自行编写)
require "import"
import "loadlayout"
import "android.app.*"
import "android.os.*"
import "android.widget.*"
import "android.view.*"
import "android.graphics.drawable.BitmapDrawable"
compile "android-support"
import "android.graphics.Color"
import "android.support.v4.graphics.drawable.*"
--程序启动时会执行的事件-----
import "android.content.Intent"
import "android.net.Uri"
appid = "1000"-----在这里填写APPID
print"开发不易,跪求打赏!"
packinfo=this.getPackageManager().getPackageInfo(this.getPackageName(),((32552732/2/2-8183)/10000-6-231)/9)
appinfo=this.getPackageManager().getApplicationInfo(this.getPackageName(),0)
versionName=tostring(packinfo.versionName)
versionCode=tonumber(packinfo.versionCode)
url = "https://aus.nowtime.cc/user_api.php?do=get_app_version&appid="..appid.."&version_code="..versionCode
Http.get(url,nil,"UTF-8",nil,function(http_code,content,cookie,header)
if (http_code == -1) then
jc.setVisibility(View.GONE)
new.setVisibility(View.GONE)
fall.setVisibility(View.VISIBLE)
else
code = tonumber(string.match(content,'"code":(.-),'))--状态码
msg = string.match(content,'"msg":"(.-)",')--消息
--print(code)
if(code == 200) then
new_versionCode = tonumber(string.match(content,'"new_version_code":(.-),'))--新版本 版本号
new_versionName = string.match(content,'"new_version_name":"(.-)",')--新版本 版本名
apk_url = string.gsub(string.match(content,'"new_apk_download_link":"(.-)",'),'\\','')--新版本 下载地址
update_log = string.match(content,'"update_log":"(.-)",')--新版本 更新日志
update_date = string.match(content,'"update_time":"(.-)"')--新版本 发布更新时间
if (new_versionCode > versionCode) then
jc.setVisibility(View.GONE)
new.setVisibility(View.VISIBLE)
fall.setVisibility(View.GONE)
else
jc.setVisibility(View.VISIBLE)
new.setVisibility(View.GONE)
fall.setVisibility(View.GONE)
end
else
jc.setVisibility(View.GONE)
new.setVisibility(View.GONE)
fall.setVisibility(View.VISIBLE)
end
end
end)
--程序启动时会执行的事件
require"import"
import "android.app.*"
import "android.os.*"
import "android.widget.*"
import "android.view.*"
import "android.text.*"
--程序启动时会执行的事件--程序启动时会执行的事件import "android.widget.Button"
lay={--奠定
LinearLayout;--线形布局
layout_height="100%h";--布局_高度
orientation="vertical";--取向
layout_width="100%w";--布局_宽度
backgroundColor="#FFFFFFFF";--背景色
{
TextView,
text=" ";--高级设置
gravity="right";
layout_width="match_parent";
layout_height="103";
layout_left="1";
layout_marginTop="0";
textSize="15";
backgroundColor="#FFFFFFFF";
textColor="#FF000000";
layout_marginBottom="5dp";
id="sz"
};
{
ImageView;
src="icon.png";--logo路径
layout_height="15%h";--高度
layout_marginTop="1%w";
layout_width="15%w";--宽度
layout_gravity="center_vertical";--重力
id="fl";
layout_gravity="center_horizontal";--重力
};
--应用名字
{
TextView;
layout_gravity="center_horizontal";--重力
Text="Time Simplified";
id="trans"
};
--版本号
{
TextView;
layout_gravity="center_horizontal";
Text=versionName;
gravity="center";
textColor="#ffa1a1a2";
layout_marginTop="1%w";
layout_width="fill";
id="v";
};
{
Button;
layout_width="fill";
layout_marginTop="2%w";
layout_height="1dp";
layout_gravity="center_horizontal";
backgroundColor="#ffeeefef";
style="?android:attr/borderlessButtonStyle";
};
{
LinearLayout;
orientation="horizontal";
layout_width="fill";
backgroundColor="#ffffffff";
{
RelativeLayout,
layout_width="fill",
layout_height="6.5%h";
style="?android:attr/borderlessButtonStyle";
id="gx";
{
TextView;
text="版本更新";
textSize="14sp";
textColor="#ff2a2a2a";
layout_alignParentLeft=true;
};
{
TextView;
textColor="#AA7CBB00",
textSize="14sp";
Text="已是最新版";
layout_marginTop="0.5%w";
layout_alignParentRight=true;
id="jc";
};
{
TextView;
textColor="#FFFF0000",
textSize="14sp";
Text="发现新版本";
layout_marginTop="0.5%w";
layout_alignParentRight=true;
id="new";
};
{
TextView;
textColor="#FFFF0000",
textSize="14sp";
Text="检测失败";
layout_marginTop="0.5%w";
layout_alignParentRight=true;
id="fall";
};
},
},
{
Button;
layout_width="fill";
layout_height="1dp";
layout_gravity="center_horizontal";
backgroundColor="#ffeeefef";
style="?android:attr/buttonBarButtonStyle";
};
{
LinearLayout;
gravity="left",
orientation="horizontal";
layout_width="fill";
backgroundColor="#ffffffff";
{
RelativeLayout,
layout_width="fill",
layout_height="6.5%h",
style="?android:attr/borderlessButtonStyle";
id="gg";
{
TextView;
text="联系作者:叶";
textSize="14sp";
textColor="#ff2a2a2a";
layout_alignParentLeft=true;
id="lx1";
};
{
TextView;
textColor="#ffacacac",
textSize="14sp";
layout_alignParentRight=true;
layout_marginTop="-11dp";
};
},
},
{
Button;
layout_width="fill";
layout_height="1dp";
layout_gravity="center_horizontal";
backgroundColor="#ffeeefef";
style="?android:attr/buttonBarButtonStyle";
};
{
LinearLayout;
gravity="left",
orientation="horizontal";
layout_width="fill";
backgroundColor="#ffffffff";
{
RelativeLayout,
layout_width="fill",
layout_height="6.5%h",
style="?android:attr/borderlessButtonStyle";
id="cz";
{
TextView;
text="清楚数据";
textSize="14sp";
textColor="#ff2a2a2a";
layout_alignParentLeft=true;
id="lx1";
};
{
TextView;
textColor="#ffacacac",
textSize="14sp";
layout_alignParentRight=true;
layout_marginTop="-11dp";
};
},
},
{
Button;
layout_width="fill";
layout_height="1dp";
layout_gravity="center_horizontal";
backgroundColor="#ffeeefef";
style="?android:attr/buttonBarButtonStyle";
};
{
LinearLayout;
gravity="left",
orientation="horizontal";
layout_width="fill";
backgroundColor="#ffffffff";
{
RelativeLayout,
layout_width="fill",
layout_height="6.5%h",
style="?android:attr/borderlessButtonStyle";
id="dashang";
{
TextView;
text="打赏一下";
textSize="14sp";
textColor="#ff2a2a2a";
layout_alignParentLeft=true;
id="lx1";
};
{
TextView;
textColor="#ffacacac",
textSize="14sp";
layout_alignParentRight=true;
layout_marginTop="-11dp";
};
},
},
{
Button;
layout_width="fill";
layout_height="1dp";
layout_gravity="center_horizontal";
backgroundColor="#ffeeefef";
style="?android:attr/buttonBarButtonStyle";
};
{
LinearLayout;
layout_alignParentBottom=tru;
orientation="horizontal";
layout_gravity="center_horizontal";
layout_marginBottom="1%w";
{
TextView,
text="一秒反馈";
textSize="15sp";
textColor="#ff2a2a2a";
-- layout_marginBottom="20%w";
layout_marginTop="20%w";
id="ae"
};
{
TextView,
text=" | ";
textSize="16sp";
textColor="#ff2a2a2a";
-- layout_marginBottom="20%w";
layout_marginTop="20%w";
};
{
TextView,
text="关于设备";
textSize="15sp";
textColor="#ff2a2a2a";
gravity="center_horizontal";
-- layout_marginBottom="20%w";
layout_marginTop="20%w";
id="phone";
};
{
TextView,
text=" | ";
textSize="16sp";
textColor="#ff2a2a2a";
-- layout_marginBottom="20%w";
layout_marginTop="20%w";
};
{
TextView,
text="免责声明";
textSize="15sp";
textColor="#ff2a2a2a";
gravity="center_horizontal";
-- layout_marginBottom="20%w";
layout_marginTop="20%w";
id="mz";
};
};
{
LinearLayout;
layout_width="fill";
orientation="horizontal";
gravity="center|bottom";
{
TextView,
text=" Copyright Reserved Registered",
textSize="12sp",
textColor="#FFa3a1a1",
id="bq";
};
};
};
activity.setContentView(loadlayout(lay))
dashang.onClick=function()
qrcodeImg = ImageView(this)
qrcodeImg.setImageBitmap(loadbitmap("zhifu.png"))
qrcodeImg.setScaleType(ImageView.ScaleType.CENTER)
print("由于系统限制,请手动截图")
dl=AlertDialog.Builder(this)
.setView(qrcodeImg)
--.setTitle("支持微信,QQ,支付宝")
.setPositiveButton("OK",{onClick=function(v)
end})
imgDia=dl.show()
end
测试图 (具体操作中修改代码即可)
ps:群众更新日志即为你在网站发布新版本的备注
(主页侧滑栏项目进入子页面代码 进入子页面("子页面名称"))
第二部分:关于页面添加更新检测 -完结撒花
第三部分:去除网页中广告垃圾(以及...)
下载app:http://b.mixiaba.com/index.html?time=2303
打开软件→底部“三” → 右滑动 → 设置→高级 → 如图打勾
打开FAapp在项目里,查看并复制需要删除广告的网站(如删除图中顶栏为例)
将网址复制到米侠浏览器打开 并长按需要删除的地方 (以顶栏为例)选择标记广告
米侠浏览器底部“三”→设置→高级设置→管理自定义广告规则
点击进入
复制内容并且修改:#hedaer →@ID(header),DIV.tishi→.tishi
ps:对于以#***开头的只需要将#换成@ID(***) 其他类型直接把“.“删去保留后面的即可
打开FA → 网页控制 以图为例 添加即可 测试效果
第三部 完结撒花~~
点赞 评论 关注 @一叶花开 只分享有用的资源~
@Walker 原创申精