乐愚社区Beta

 精品软件  >  [一叶花开]FA高级进阶教程--版本在线更新,about添检测更新,去除页面广告!

[一叶花开]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 原创申精



12条回帖
蓝影时光  L0  评论于
(0)  回复(1) 3#
你好楼主像这样的广告规则怎样删除#rrhyhd,#5450x5pyn,DIV.filter filter-black,DIV.parallax-background parallax-active activated 保留哪些,怎么编辑。谢谢!
一叶花开 楼主 :仔细看教程
发表在2020-03-28 回复
  
:)
城南花已开  L0  评论于
(0)  回复(0) 6#
广告元素一直跳动怎么办,删不完,
越界_X  L0  评论于
(0)  回复(0) 7#
留眼
人生有度  L0  评论于
(0)  回复(0) 8#
6666
还没注册帐号?快来注册社区帐号,和我们一起嗨起来!
关于本社区

集各类兴趣爱好于一身的轻量化交流社区,在此您可以和他人一起分享交流您觉得有价值的内容,社区鼓励大家发表原创内容,为社区添砖加瓦!

发帖奖励 → 社区版规 → 招聘版主 →
推荐版块
扫描二维码下载社区APP
回到顶部