分享一份漂亮的UI源码-源码区论坛-autojs-五云学习

分享一份漂亮的UI源码

界面效果

分享一份漂亮的UI源码

分享一份漂亮的UI源码

源码

'ui';
activity.setTheme(com.google.android.material.R$style.Theme_MaterialComponents_DayNight_DarkActionBar);
const snackbar = com.google.android.material.snackbar.Snackbar;
var Toast = android.widget.Toast;
$debug.setMemoryLeakDetectionEnabled(false); //autojs机制即使图片回收了也会显示内存泄漏,于是就让它不显示~
ui.statusBarColor('#282828');
var AllColor = '#282828';
/*字体颜色变量*/
var TextColor = '#B3E5FC';
/*透明度*/
var alpha = '0.9';
var 软件名 = '二十六度脚本社';
var APP名 = '二十六度脚本社';
try {
var 联系 = http.get('').body.json();
var vx = 联系.微信;
var 提示 = 联系.公告提示;
if (群号 == '') {
var 群号 = '*********';
var vx = '*********';
}
} catch (e) {
var 群号 = '*********';
var vx = '*********';
}
ui.layout(
<drawer id="drawer">
<vertical id="isSoftMonitor">
<appbar bg="#282828" h="auto">
<linear gravity="center||left">
<toolbar id="toolbar" titleTextColor="#FFFFFF" subtitleTextColor="#FFFFFF" popupBackground="#ff7000" background="#282828" layout_weight="1" />
<vertical margin="8 1" id="about" gravity="center" foreground="?attr/selectableItemBackground" clickable="true">
<img w="35" h="35" scaleType="fitXY" circle="true" layout_gravity="right" src="file://res/wap6.jpg" />
</vertical>
</linear>
</appbar>
<appbar></appbar>
<viewpager id="viewpager">
<frame bg="#FFFFFF">
<scroll>
//滑动
<vertical>
<card margin="5 5 3 10" w="*" h="auto" cardCornerRadius="10dp" cardBackgroundColor="#3C3E46">
<vertical w="*" h="*" bg="#FFFFFF">
<card w="*" h="auto" cardCornerRadius="10dp" cardBackgroundColor="#3C3E46">
<vertical w="*" h="*" bg="#FFFFFF">
<text textStyle="bold" layout_gravity="right|bottom" gravity="center" text="必需权限:点左上角开启无障碍、悬浮窗权限" w="*" h="30" textColor="#33449f" textSize="14sp" />
</vertical>
</card>
{/*免费专区*/}
<vertical w="*" h="auto" marginTop="10" gravity="center">
<card w="120" h="auto" margin="10 5 10 0" cardBackgroundColor="#F2F3F5" cardCornerRadius="4dp" cardElevation="1dp" foreground="?selectableItemBackground">
<horizontal w="*" bg="#009999" gravity="center_vertical">
<text textColor="#ffffff" textSize="16sp" textStyle="bold" text="免费脚本专区" w="*" gravity="center" />
</horizontal>
</card>
</vertical>
<horizontal margin="5" w="*" h="35">
<card id="mf1" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1">
<card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff">
<horizontal margin="5 0 5 0" gravity="center">
<card cardCornerRadius="5dp">
<img src="file://res/wap1.jpg" scaleType="fitXY" w="25" h="25" />
</card>
<vertical w="*" h="*" layout_weight="1">
<text text="卷轴合集" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" />
</vertical>
</horizontal>
</card>
</card>
<vertical w="10" h="*"></vertical>
<card id="mf2" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1">
<card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff">
<horizontal margin="5 0 5 0" gravity="center">
<card cardCornerRadius="5dp">
<img src="https://s3.x914.com/jxqh20/i/2024/05/28/7hb66.png" scaleType="fitXY" w="25" h="25" />
</card>
<vertical w="*" h="*" layout_weight="1">
<text text="微信阅读" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" />
</vertical>
</horizontal>
</card>
</card>
<vertical w="10" h="*"></vertical>
<card id="mf3" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1">
<card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff">
<horizontal margin="5 0 5 0" gravity="center">
<card cardCornerRadius="5dp">
<img src="file://res/wap3.jpg" scaleType="fitXY" w="25" h="25" />
</card>
<vertical w="*" h="*" layout_weight="1">
<text text="星抖短剧" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" />
</vertical>
</horizontal>
</card>
</card>
</horizontal>
<horizontal margin="5" w="*" h="35">
<card id="mf4" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1">
<card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff">
<horizontal margin="5 0 5 0" gravity="center">
<card cardCornerRadius="5dp">
<img src="file://res/wap2.jpg" scaleType="fitXY" w="25" h="25" />
</card>
<vertical w="*" h="*" layout_weight="1">
<text text="星星短剧" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" />
</vertical>
</horizontal>
</card>
</card>
<vertical w="10" h="*"></vertical>
<card id="mf5" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1">
<card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff">
<horizontal margin="5 0 5 0" gravity="center">
<card cardCornerRadius="5dp">
<img src="file://res/wap4.jpg" scaleType="fitXY" w="25" h="25" />
</card>
<vertical w="*" h="*" layout_weight="1">
<text text="一个圈圈" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" />
</vertical>
</horizontal>
</card>
</card>
<vertical w="10" h="*"></vertical>
<card id="mf6" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1">
<card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff">
<horizontal margin="5 0 5 0" gravity="center">
<card cardCornerRadius="5dp">
<img src="file://res/wap5.jpg" scaleType="fitXY" w="25" h="25" />
</card>
<vertical w="*" h="*" layout_weight="1">
<text text="享视平台" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" />
</vertical>
</horizontal>
</card>
</card>
</horizontal>
<horizontal margin="5" w="*" h="35">
<card id="mf7" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1">
<card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff">
<horizontal margin="5 0 5 0" gravity="center">
<card cardCornerRadius="5dp">
<img src="file://res/wap7.jpg" scaleType="fitXY" w="25" h="25" />
</card>
<vertical w="*" h="*" layout_weight="1">
<text text="菠萝视频" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" />
</vertical>
</horizontal>
</card>
</card>
<vertical w="10" h="*"></vertical>
<card id="mf8" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1">
<card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff">
<horizontal margin="5 0 5 0" gravity="center">
<card cardCornerRadius="5dp">
<img src="file://res/wap8.jpg" scaleType="fitXY" w="25" h="25" />
</card>
<vertical w="*" h="*" layout_weight="1">
<text text="水浒豪情" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" />
</vertical>
</horizontal>
</card>
</card>
<vertical w="10" h="*"></vertical>
<card id="mf9" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1">
<card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff">
<horizontal margin="5 0 5 0" gravity="center">
<card cardCornerRadius="5dp">
<img src="file://res/wap12.jpg" scaleType="fitXY" w="25" h="25" />
</card>
<vertical w="*" h="*" layout_weight="1">
<text text="星火秘境" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" />
</vertical>
</horizontal>
</card>
</card>
</horizontal>
<horizontal margin="5" w="*" h="35">
<card id="mf10" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1">
<card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff">
<horizontal margin="5 0 5 0" gravity="center">
<card cardCornerRadius="5dp">
<img src="file://res/wap13.jpg" scaleType="fitXY" w="25" h="25" />
</card>
<vertical w="*" h="*" layout_weight="1">
<text text="农民世界" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" />
</vertical>
</horizontal>
</card>
</card>
<vertical w="215" h="*"></vertical>
<vertical w="10" h="*"></vertical>
<vertical w="10" h="*"></vertical>
</horizontal>
{/*VIP专区*/}
<vertical w="*" h="auto" marginTop="10" gravity="center">
<card w="120" h="auto" margin="10 5 10 0" cardBackgroundColor="#F2F3F5" cardCornerRadius="4dp" cardElevation="1dp" foreground="?selectableItemBackground">
<horizontal w="*" bg="#009999" gravity="center_vertical">
<text textColor="#ffffff" textSize="16sp" textStyle="bold" text="VIP脚本专区" w="*" gravity="center" />
</horizontal>
</card>
</vertical>
<horizontal margin="5" w="*" h="35">
<card id="vip6" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1">
<card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff">
<horizontal margin="5 0 5 0" gravity="center">
<card cardCornerRadius="5dp">
<img src="https://s3.x914.com/jxqh20/i/2024/05/28/7hb66.png" scaleType="fitXY" w="25" h="25" />
</card>
<vertical w="*" h="*" layout_weight="1">
<text text="微信抢福袋" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" />
</vertical>
</horizontal>
</card>
</card>
<vertical w="10" h="*"></vertical>
<card id="vip1" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1">
<card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff">
<horizontal margin="5 0 5 0" gravity="center">
<card cardCornerRadius="5dp">
<img src="https://s3.x914.com/jxqh20/i/2024/05/28/12ghi.png" scaleType="fitXY" w="25" h="25" />
</card>
<vertical w="*" h="*" layout_weight="1">
<text text="红果短剧" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" />
</vertical>
</horizontal>
</card>
</card>
<vertical w="10" h="*"></vertical>
<card id="vip2" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1">
<card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff">
<horizontal margin="5 0 5 0" gravity="center">
<card cardCornerRadius="5dp">
<img src="https://s3.x914.com/jxqh20/i/2024/05/28/7hmco.png" scaleType="fitXY" w="25" h="25" />
</card>
<vertical w="*" h="*" layout_weight="1">
<text text="常读小说" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" />
</vertical>
</horizontal>
</card>
</card>
</horizontal>
<horizontal margin="5" w="*" h="35">
<card id="vip7" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1">
<card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff">
<horizontal margin="5 0 5 0" gravity="center">
<card cardCornerRadius="5dp">
<img src="https://s3.x914.com/jxqh20/i/2024/05/28/12dej.png" scaleType="fitXY" w="25" h="25" />
</card>
<vertical w="*" h="*" layout_weight="1">
<text text="快手" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" />
</vertical>
</horizontal>
</card>
</card>
<vertical w="10" h="*"></vertical>
<card id="vip8" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1">
<card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff">
<horizontal margin="5 0 5 0" gravity="center">
<card cardCornerRadius="5dp">
<img src="https://s3.x914.com/jxqh20/i/2024/05/28/5spl.webp" scaleType="fitXY" w="25" h="25" />
</card>
<vertical w="*" h="*" layout_weight="1">
<text text="快手极速版" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" />
</vertical>
</horizontal>
</card>
</card>
<vertical w="10" h="*"></vertical>
<card id="vip4" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1">
<card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff">
<horizontal margin="5 0 5 0" gravity="center">
<card cardCornerRadius="5dp">
<img src="https://s3.x914.com/jxqh20/i/2024/05/28/12fw4.png" scaleType="fitXY" w="25" h="25" />
</card>
<vertical w="*" h="*" layout_weight="1">
<text text="有柿" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" />
</vertical>
</horizontal>
</card>
</card>
</horizontal>
<horizontal margin="5" w="*" h="35">
<card id="vip9" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1">
<card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff">
<horizontal margin="5 0 5 0" gravity="center">
<card cardCornerRadius="5dp">
<img src="file://res/wap11.jpg" scaleType="fitXY" w="25" h="25" />
</card>
<vertical w="*" h="*" layout_weight="1">
<text text="百度极速版" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" />
</vertical>
</horizontal>
</card>
</card>
<vertical w="10" h="*"></vertical>
<card id="vip3" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1">
<card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff">
<horizontal margin="5 0 5 0" gravity="center">
<card cardCornerRadius="5dp">
<img src="https://s3.x914.com/jxqh20/i/2024/05/28/12990.png" scaleType="fitXY" w="25" h="25" />
</card>
<vertical w="*" h="*" layout_weight="1">
<text text="蛋花小说" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" />
</vertical>
</horizontal>
</card>
</card>
<vertical w="10" h="*"></vertical>
<card id="vip5" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1">
<card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff">
<horizontal margin="5 0 5 0" gravity="center">
<card cardCornerRadius="5dp">
<img src="file://res/wap1.jpg" scaleType="fitXY" w="25" h="25" />
</card>
<vertical w="*" h="*" layout_weight="1">
<text text="养机脚本" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" />
</vertical>
</horizontal>
</card>
</card>
</horizontal>
</vertical>
</card>
</vertical>
</scroll>
<card w="*" h="50" margin="5 5 5 10" cardCornerRadius="10" cardBackgroundColor="#0098ff" layout_gravity="bottom">
<card w="*" h="*" margin="1" cardCornerRadius="10" cardBackgroundColor="#ffffff">
<tabs id="tabs" w="*" h="*" textSize="5sp" />
</card>
</card>
</frame>
//==============
<frame>
<ScrollView>
<vertical w="*" h="*">
<card w="*" h="auto" margin="20 10 20 10" cardCornerRadius="10" cardBackgroundColor="#0098ff" layout_gravity="bottom">
<card w="*" h="*" margin="1" cardCornerRadius="10" cardBackgroundColor="#ffffff">
<vertical w="*" h="auto" margin="20 5 20 5">
<horizontal>
<card cardCornerRadius="5dp">
<img src="file://res/wap1.jpg" scaleType="fitXY" w="70" h="70" />
</card>
<vertical w="*" h="70" marginLeft="10" layout_weight="1">
<text text="{{APP名}}" textColor="#286b88" w="*" h="*" textSize="18sp" textStyle="bold" gravity="center_vertical" layout_weight="1" />
<text id="XH" text="型号:null" textColor="#286b88" w="*" h="*" textSize="10sp" textStyle="bold" gravity="center_vertical" layout_weight="1" />
<text id="XT" text="Android:null" textColor="#286b88" w="*" h="*" textSize="10sp" textStyle="bold" gravity="center_vertical" layout_weight="1" />
</vertical>
</horizontal>
<card w="190" h="25" marginLeft="80" cardCornerRadius="5" cardBackgroundColor="#000000">
<text id="vip" text="VIP:已过期" textColor="#ffb200" w="*" h="*" textSize="13sp" textStyle="bold" gravity="center" />
</card>
</vertical>
</card>
</card>
<card id="VIPXF1" w="*" h="auto" margin="20 5 20 5" cardCornerRadius="5" cardBackgroundColor="#0098ff">
<card w="*" h="*" margin="1" cardCornerRadius="5" cardBackgroundColor="#ffffff">
<vertical w="*" h="auto" gravity="center">
<horizontal w="*" h="auto" margin="5">
<horizontal w="*" h="50" gravity="center_vertical" layout_weight="1">
<text text="卡密:" textColor="#000000" w="auto" h="auto" textSize="14sp" textStyle="bold" gravity="center_vertical" />
<card w="*" h="auto" margin="5 1 5 1" cardCornerRadius="5">
<input id="km" w="*" h="auto" text="" hint="请输入卡密" bg="#ffffff" textSize="14sp" gravity="center" />
</card>
</horizontal>
</horizontal>
<horizontal margin="10 0 10 0">
<card id="gmkm" w="*" h="30" cardElevation="0" cardCornerRadius="10" bg="file://./清欢/mk.png" layout_weight="1">
<text text="购买卡密" textColor="#286b88" gravity="center" w="*" h="*" textSize="14sp" textStyle="bold" />
</card>
<vertical w="10" h="auto"></vertical>
<card id="jh" w="*" h="30" marginBottom="1" cardElevation="0" cardCornerRadius="10" bg="file://./清欢/mk.png" layout_weight="1">
<text text="立即激活" textColor="#286b88" gravity="center" w="*" h="*" textSize="14sp" textStyle="bold" />
</card>
<vertical w="10" h="auto"></vertical>
<card id="jb" w="*" h="30" marginBottom="1" cardElevation="0" cardCornerRadius="10" bg="file://./清欢/mk.png" layout_weight="1">
<text text="解绑设备" textColor="#286b88" gravity="center" w="*" h="*" textSize="14sp" textStyle="bold" />
</card>
</horizontal>
</vertical>
</card>
</card>
<card id="qhzs1" w="*" h="35" margin="20 5 20 5" cardCornerRadius="5" cardBackgroundColor="#0098ff">
<card w="*" h="*" margin="1" cardCornerRadius="5" cardBackgroundColor="#ffffff">
<horizontal id="加群" w="*" h="*" gravity="center_vertical">
<img src="file://res/wap9.jpg" scaleType="fitXY" w="25" h="25" />
<text text="点我加群:{{群号}}" marginLeft="10" textColor="#286b88" w="*" h="*" textSize="12sp" textStyle="bold" gravity="center_vertical" layout_weight="1" />
<vertical w="*" h="*" gravity="center|right" margin="10 0 10 0" layout_weight="1">
<img src="file://res/wap9.jpg" scaleType="fitXY" w="25" h="25" />
</vertical>
</horizontal>
</card>
</card>
<card id="tjxm" w="*" h="35" margin="20 5 20 5" cardCornerRadius="5" cardBackgroundColor="#0098ff">
<card w="*" h="*" margin="1" cardCornerRadius="5" cardBackgroundColor="#ffffff">
<horizontal w="*" h="*" gravity="center_vertical">
<img src="file://./清欢/dl.png" scaleType="fitXY" w="25" h="25" />
<text text="推荐项目" marginLeft="10" textColor="#286b88" w="*" h="*" textSize="12sp" textStyle="bold" gravity="center_vertical" layout_weight="1" />
<vertical w="*" h="*" gravity="center|right" margin="10 0 10 0" layout_weight="1">
<img src="file://./清欢/fh.png" scaleType="fitXY" w="25" h="25" />
</vertical>
</horizontal>
</card>
</card>
<card id="syjc" w="*" h="35" margin="20 5 20 5" cardCornerRadius="5" cardBackgroundColor="#0098ff">
<card w="*" h="*" margin="1" cardCornerRadius="5" cardBackgroundColor="#ffffff">
<horizontal w="*" h="*" gravity="center_vertical">
<img src="file://./清欢/sz.png" scaleType="fitXY" w="25" h="25" />
<text text="使用教程" marginLeft="10" textColor="#286b88" w="*" h="*" textSize="12sp" textStyle="bold" gravity="center_vertical" layout_weight="1" />
<vertical w="*" h="*" gravity="center|right" margin="10 0 10 0" layout_weight="1">
<img src="file://./清欢/fh.png" scaleType="fitXY" w="25" h="25" />
</vertical>
</horizontal>
</card>
</card>
<vertical w="*" h="60" layout_gravity="bottom"></vertical>
</vertical>
</ScrollView>
<card w="*" h="50" margin="5 5 5 10" cardCornerRadius="10" cardBackgroundColor="#0098ff" layout_gravity="bottom">
<card w="*" h="*" margin="1" cardCornerRadius="10" cardBackgroundColor="#ffffff">
<tabs id="tabs1" w="*" h="*" textSize="5sp" />
</card>
</card>
</frame>
//==============
</viewpager>
</vertical>
{/*左上角打开侧拉菜单*/}
<vertical layout_gravity="left" clickable="true" focusable="true" bg="#282828" w="auto">
<img w="280" h="180" scaleType="fitXY" src="file://res/wap10.jpg" />
<vertical bg="#282828">
<vertical margin="5 10 5 10">
<horizontal padding="10 3">
<vertical layout_weight="1">
<text id="版本" text="无障碍服务" textColor="#ffffff" textStyle="bold" textSize="15" />
</vertical>
<Switch id="accessibilityCheckbox" scaleY="0.9" scaleX="0.9" checked="false" />
</horizontal>
<horizontal padding="10 3">
<vertical layout_weight="1">
<text text="悬浮窗功能" textColor="#ffffff" textSize="15" textStyle="bold" />
</vertical>
<Switch id="overlayCheckbox" scaleY="0.9" scaleX="0.9" checked="false" />
</horizontal>
<horizontal id="foregroundServiceCheckbox" padding="10 3">
<vertical layout_weight="1">
<text text="前 台 服 务" textColor="#ffffff" textSize="15" textStyle="bold" />
</vertical>
<Switch scaleY="0.9" scaleX="0.9" checked="true" />
</horizontal>
<horizontal id="加群" padding="10 13">
<vertical layout_weight="1">
<text text="点我加群:{{群号}}" textColor="#ffffff" textSize="13" textStyle="bold" />
<text text="入群不定时更新更多优质零撸项目" textColor="#ffffff" textSize="11" marginTop="2" />
</vertical>
<img w="18" h="18" layout_gravity="right|center" src="@drawable/ic_keyboard_arrow_right_black_48dp" tint="#ffffff" marginLeft="-4" />
</horizontal>
<horizontal id="qqGroupButton" padding="10 5">
<vertical layout_weight="1">
<text id="脚本下载" text="代理火热招募中" textColor="#ffffff" textStyle="bold" textSize="13sp" />
<text text="当前版本 | {{app.versionName}}" textColor="#ffffff" marginTop="2" textSize="11sp" />
</vertical>
<img w="18" h="18" layout_gravity="right|center" src="@drawable/ic_keyboard_arrow_right_black_48dp" tint="#ffffff" marginLeft="-4" />
</horizontal>
<horizontal id="openConsoleButton" padding="10 5">
<vertical layout_weight="1">
<text text="运行日志" textColor="#ffffff" textStyle="bold" textSize="13sp" />
<text text="排查和修复应用程序错误" textColor="#ffffff" marginTop="2" textSize="11sp" />
</vertical>
<img w="18" h="18" layout_gravity="right|center" src="@drawable/ic_keyboard_arrow_right_black_48dp" tint="#ffffff" marginLeft="-4" />
</horizontal>
</vertical>
<text padding="10 8" textColor="#ffffff" text="注:承诺以上所有权限均用于程序的运行需要,您可以根据自己实际使用需求开启或关闭部分敏感权限。" textSize="11sp" />
</vertical>
</vertical>
</drawer>
);
//让工具栏左上角可以打开侧拉菜单
let customToolbar = {
init: function (title, subtitle) {
let toolbar = ui.toolbar;
toolbar.title = title;
toolbar.subtitle = subtitle;
toolbar.titleTextColor = colors.parseColor('#FFFFFF');
toolbar.subtitleTextColor = colors.parseColor('#FFFFFF');
toolbar.subbackground = colors.parseColor('#FFFFFF');
toolbar.subtitleTextView.setTextSize(android.util.TypedValue.COMPLEX_UNIT_SP, 10);
toolbar.getTitleTextView().setTextSize(18);
activity.setSupportActionBar(toolbar);
toolbar.setupWithDrawer(ui.drawer);
}
};
customToolbar.init(软件名, '诚招代理 请到我的页面联系群主');
var AccessibilityModule = (function () {
function checkAccessibilityPermission() {
var isAccessibilityChecked = ui.accessibilityCheckbox.isChecked();
if (isAccessibilityChecked && auto.service == null) {
app.startActivity({
action: 'android.settings.ACCESSIBILITY_SETTINGS'
});
toast('请开启《' + app.getAppName(context.packageName) + '》的无障碍服务');
}
if (!isAccessibilityChecked && auto.service != null) {
toast('关闭无障碍服务');
auto.service.disableSelf();
}
}
function checkOverlayPermission() {
var isOverlayChecked = ui.overlayCheckbox.isChecked();
if (isOverlayChecked && !new android.provider.Settings().canDrawOverlays(context)) {
app.startActivity({
action: 'android.settings.action.MANAGE_OVERLAY_PERMISSION',
data: 'package:' + context.getPackageName()
});
toast('请开启《' + app.getAppName(context.packageName) + '》的悬浮窗权限');
}
}
function checkForegroundServicePermission() {
var isForegroundChecked = ui.foregroundServiceCheckbox.isChecked();
$settings.setEnabled('foreground_service', isForegroundChecked);
}
function openConsole() {
app.startActivity('console');
}
function openQQGroup() {
threads.start(function () {
try {
toastLog('欢迎您的加入~');
app.startActivity({
action: 'android.intent.action.VIEW',
data: 'mqqapi://card/show_pslcard?card_type=group&uin=' + 群号,
packageName: 'com.tencent.mobileqq'
});
} catch (e) {
log(e);
}
// app.openUrl("http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=x9pYipG_pAWBybE26fMjcn31-4UWuaNm&authKey=yBKqdlLnc7pNYZU7r38NEBePgTpPQ%2FaM48Nndbi7YcXQ4c9qGZelK1AMpfOnLG7B&noverify=0&group_code=812204838")
});
}
function bindEvents() {
ui.accessibilityCheckbox.setChecked(auto.service !== null);
ui.accessibilityCheckbox.on('check', checkAccessibilityPermission);
ui.overlayCheckbox.setChecked(new android.provider.Settings().canDrawOverlays(context));
ui.overlayCheckbox.on('check', checkOverlayPermission);
ui.foregroundServiceCheckbox.on('check', checkForegroundServicePermission);
ui.openConsoleButton.on('click', openConsole);
// ui.qqGroupButton.on("click", openQQGroup);
ui.加群.on('click', openQQGroup);
}
return {
init: function () {
bindEvents();
}
};
})();
AccessibilityModule.init();
var AccessibilityModule = (function () {
function checkAccessibilityPermission() {
var isAccessibilityChecked = ui.accessibilityCheckbox.isChecked();
if (isAccessibilityChecked && auto.service == null) {
app.startActivity({
action: 'android.settings.ACCESSIBILITY_SETTINGS'
});
toast('请开启《' + app.getAppName(context.packageName) + '》的无障碍服务');
}
if (!isAccessibilityChecked && auto.service != null) {
toast('关闭无障碍服务');
auto.service.disableSelf();
}
}
function checkOverlayPermission() {
var isOverlayChecked = ui.overlayCheckbox.isChecked();
if (isOverlayChecked && !new android.provider.Settings().canDrawOverlays(context)) {
app.startActivity({
action: 'android.settings.action.MANAGE_OVERLAY_PERMISSION',
data: 'package:' + context.getPackageName()
});
toast('请开启《' + app.getAppName(context.packageName) + '》的悬浮窗权限');
}
}
function checkForegroundServicePermission() {
var isForegroundChecked = ui.foregroundServiceCheckbox.isChecked();
$settings.setEnabled('foreground_service', isForegroundChecked);
}
function openConsole() {
app.startActivity('console');
}
function openQQGroup() {
threads.start(function () {
try {
toastLog('欢迎您的加入~');
app.startActivity({
action: 'android.intent.action.VIEW',
data: 'mqqapi://card/show_pslcard?card_type=group&uin=' + 群号,
packageName: 'com.tencent.mobileqq'
});
} catch (e) {
log(e);
}
// app.openUrl("http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=x9pYipG_pAWBybE26fMjcn31-4UWuaNm&authKey=yBKqdlLnc7pNYZU7r38NEBePgTpPQ%2FaM48Nndbi7YcXQ4c9qGZelK1AMpfOnLG7B&noverify=0&group_code=812204838")
});
}
function bindEvents() {
ui.accessibilityCheckbox.setChecked(auto.service !== null);
ui.accessibilityCheckbox.on('check', checkAccessibilityPermission);
ui.overlayCheckbox.setChecked(new android.provider.Settings().canDrawOverlays(context));
ui.overlayCheckbox.on('check', checkOverlayPermission);
ui.foregroundServiceCheckbox.on('check', checkForegroundServicePermission);
ui.openConsoleButton.on('click', openConsole);
// ui.qqGroupButton.on("click", openQQGroup);
ui.加群.on('click', openQQGroup);
}
return {
init: function () {
bindEvents();
}
};
})();
ui.viewpager.setTitles(['首页', '我的']);
ui.tabs.setTabTextColors(colors.parseColor('#1874CD'), colors.parseColor('#000000'));
ui.tabs.setupWithViewPager(ui.viewpager);
ui.tabs1.setTabTextColors(colors.parseColor('#1874CD'), colors.parseColor('#000000'));
ui.tabs1.setupWithViewPager(ui.viewpager);
//页面更改侦听器
ui.viewpager.setOnPageChangeListener({
//已选定页面发生改变时触发
onPageSelected: function (index) {
if (index == 0) {
} else if (index == 1) {
}
}
});
ui.XH.setText('型号:' + device.brand);
ui.XT.setText('Android:' + device.release);
//========
function qun(number) {
if (number) {
app.startActivity({
action: 'android.intent.action.VIEW',
data: 'mqqapi://card/show_pslcard?src_type=internal&version=1&uin=' + number + '&card_type=group&source=qrcode',
packageName: 'com.tencent.mobileqq'
});
} else {
toast('暂无');
}
}
//========
ui.syjc.click(function () {
//使用教程
app.openUrl('https://flowus.cn/wapccs/share/3f1acc35-1fc6-4f8f-9cd8-62d94a066d28');
});
ui.gmkm.click(function () {
app.openUrl('https://wapccs.vip/shop/');
});
ui.tjxm.click(function () {
//卷轴项目
app.openUrl('https://flowus.cn/wapccs/share/38dc5b6e-d77b-4d3f-8c91-4899cd14b675');
});
//========
//卡密
/* ↓ 将PJYSDK.js文件中的代码复制粘贴到下面 ↓ */
const PJYSDK = (function () {
function PJYSDK(app_key, app_secret) {
http.__okhttp__.setMaxRetries(0);
http.__okhttp__.setTimeout(5 * 1000);
this.event = events.emitter();
this.debug = true;
this._lib_version = 'v1.13';
this._protocol = 'http';
this._hosts = ['api3.paojiaoyun.com', 'api2.paojiaoyun.com', 'api.paojiaoyun.com'];
this._host = this._hosts[0];
this._device_id = this.getDeviceID();
this._retry_count = 9;
this._switch_count = 0;
this._app_key = app_key;
this._app_secret = app_secret;
this._card = null;
this._username = null;
this._password = null;
this._token = null;
this.is_trial = false; // 是否是试用用户
this.login_result = {
card_type: '',
expires: '',
expires_ts: 0,
config: ''
};
this._auto_heartbeat = true; // 是否自动开启心跳任务
this._heartbeat_gap = 120 * 1000; // 默认120秒
this._heartbeat_task = null;
this._heartbeat_ret = {
code: -9,
message: '还未开始验证'
};
this._prev_nonce = null;
this._is_ping = false;
}
PJYSDK.prototype.SetBackupHosts = function (hosts) {
// 设置备用 api host
this._hosts.concat(hosts);
};
PJYSDK.prototype.switchHost = function () {
// 切换备用 api host
this._switch_count++;
this._host = this._hosts[this._switch_count % this._hosts.length];
};
PJYSDK.prototype.SetCard = function (card) {
this._card = card.trim();
};
PJYSDK.prototype.SetUser = function (username, password) {
this._username = username.trim();
this._password = password;
};
PJYSDK.prototype.getDeviceID = function () {
let id = device.serial;
if (id == null || id == '' || id == 'unknown') {
id = device.getAndroidId();
}
if (id == null || id == '' || id == 'unknown') {
id = device.getIMEI();
}
return id;
};
PJYSDK.prototype.MD5 = function (str) {
try {
let digest = java.security.MessageDigest.getInstance('md5');
let result = digest.digest(new java.lang.String(str).getBytes('UTF-8'));
let buffer = new java.lang.StringBuffer();
for (let index = 0; index < result.length; index++) {
let b = result[index];
let number = b & 0xff;
let str = java.lang.Integer.toHexString(number);
if (str.length == 1) {
buffer.append('0');
}
buffer.append(str);
}
return buffer.toString();
} catch (error) {
alert(error);
return '';
}
};
PJYSDK.prototype.getTimestamp = function () {
try {
let res = http.get('http://api.m.taobao.com/rest/api3.do?api=mtop.common.getTimestamp');
let data = res.body.json();
return Math.floor(data['data']['t'] / 1000) - 3;
} catch (error) {
try {
let res = http.get('https://tptm.hd.mi.com/gettimestamp');
let data = res.body.string();
return parseInt(data.replace('var servertime=', '')) - 3;
} catch (error) {
return Math.floor(new Date().getTime() / 1000) - 3;
}
}
};
PJYSDK.prototype._draw_cc_params = function (body) {
if (!body) return '';
start = body.indexOf('?');
if (start < 0) return '';
end = body.indexOf('";');
if (end < 0 || end < start) return '';
return body.substring(start, end);
};
PJYSDK.prototype.Ping = function () {
if (this._is_ping) return;
try {
let path = '/v1/ping';
let url = this._protocol + '://' + this._host + path;
let resp = http.get(url);
let body = resp.body.string();
if (body == 'Pong') {
log('api连接成功');
this._is_ping = true;
return;
}
let params = this._draw_cc_params(body);
if (params) {
let resp2 = http.get(url + params);
if (resp2.body.string() == 'Pong') {
log('api连接成功');
this._is_ping = true;
}
} else {
this.switchHost();
}
} catch (error) {
this.switchHost();
}
};
PJYSDK.prototype.genNonce = function () {
const ascii_str = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
let tmp = '';
for (let i = 0; i < 20; i++) {
tmp += ascii_str.charAt(Math.round(Math.random() * ascii_str.length));
}
return this.MD5(this.getDeviceID() + this._prev_nonce + new Date().getTime() + tmp);
};
PJYSDK.prototype.joinParams = function (params) {
let ps = [];
for (let k in params) {
ps.push(k + '=' + params[k]);
}
ps.sort();
return ps.join('&');
};
PJYSDK.prototype.CheckRespSign = function (resp) {
if (resp.code != 0 && resp.nonce === '' && resp.sign === '') {
return resp;
}
let ps = '';
if (resp['result']) {
ps = this.joinParams(resp['result']);
}
let s = resp['code'] + resp['message'] + ps + resp['nonce'] + this._app_secret;
let sign = this.MD5(s);
if (sign === resp['sign']) {
if (this._prev_nonce === null) {
this._prev_nonce = resp['nonce'];
return {
code: 0,
message: 'OK'
};
} else {
if (resp['nonce'] > this._prev_nonce) {
this._prev_nonce = resp['nonce'];
return {
code: 0,
message: 'OK'
};
} else {
return {
code: -98,
message: 'CRS:nonce校验失败'
};
}
}
}
return {
code: -99,
message: 'CRS:签名校验失败'
};
};
PJYSDK.prototype.retry_fib = function (num) {
if (num > 9) {
return 34;
}
let a = 0;
let b = 1;
for (let i = 0; i < num; i++) {
let tmp = a + b;
a = b;
b = tmp;
}
return a;
};
PJYSDK.prototype._debug = function (path, params, result) {
if (this.debug) {
log('\n' + path, '\nparams:', params, '\nresult:', result);
}
};
PJYSDK.prototype.Request = function (method, path, params) {
this.Ping();
// 构建公共参数
params['app_key'] = this._app_key;
method = method.toUpperCase();
let max_retries = this._retry_count;
let retries_count = 0;
let data = {
code: -1,
message: '连接服务器失败'
};
do {
let url = this._protocol + '://' + this._host + path;
retries_count++;
let sec = this.retry_fib(retries_count);
delete params['sign'];
params['nonce'] = this.genNonce();
params['timestamp'] = this.getTimestamp();
let ps = this.joinParams(params);
let s = method + this._host + path + ps + this._app_secret;
let sign = this.MD5(s);
params['sign'] = sign;
let resp, body;
try {
if (method === 'GET') {
resp = http.get(url + '?' + ps + '&sign=' + sign);
} else {
// POST
resp = http.post(url, params);
}
body = resp.body.string();
data = JSON.parse(body);
this._debug(method + '-' + path + ':', params, data);
let crs = this.CheckRespSign(data);
if (crs.code !== 0) {
return crs;
} else {
return data;
}
} catch (error) {
if (this.debug) {
log('[*] request error: ', error, sec + 's后重试');
}
this._debug(method + '-' + path + ':', params, body);
this.switchHost();
sleep(sec * 1000);
}
} while (retries_count < max_retries);
return data;
};
/* 通用 */
PJYSDK.prototype.GetHeartbeatResult = function () {
return this._heartbeat_ret;
};
PJYSDK.prototype.GetTimeRemaining = function () {
let g = this.login_result.expires_ts - this.getTimestamp();
if (g < 0) {
return 0;
}
return g;
};
/* 卡密相关 */
PJYSDK.prototype.CardLogin = function () {
// 卡密登录
if (!this._card) {
return {
code: -4,
message: '请先设置卡密'
};
}
let method = 'POST';
let path = '/v1/card/login';
let data = {
card: this._card,
device_id: this._device_id
};
let ret = this.Request(method, path, data);
if (ret.code == 0) {
this._token = ret.result.token;
this.login_result = ret.result;
if (this._auto_heartbeat) {
this._startCardHeartbeat();
}
}
return ret;
};
PJYSDK.prototype.CardHeartbeat = function () {
// 卡密心跳,默认会自动调用
if (!this._token) {
return {
code: -2,
message: '请在卡密登录成功后调用'
};
}
let method = 'POST';
let path = '/v1/card/heartbeat';
let data = {
card: this._card,
token: this._token
};
let ret = this.Request(method, path, data);
if (ret.code == 0) {
this.login_result.expires = ret.result.expires;
this.login_result.expires_ts = ret.result.expires_ts;
}
return ret;
};
PJYSDK.prototype._startCardHeartbeat = function () {
// 开启卡密心跳任务
if (this._heartbeat_task) {
this._heartbeat_task.interrupt();
this._heartbeat_task = null;
}
this._heartbeat_task = threads.start(function () {
setInterval(function () {}, 10000);
});
this._heartbeat_ret = this.CardHeartbeat();
this._heartbeat_task.setInterval(
(self) => {
self._heartbeat_ret = self.CardHeartbeat();
if (self._heartbeat_ret.code != 0) {
self.event.emit('heartbeat_failed', self._heartbeat_ret);
}
},
this._heartbeat_gap,
this
);
this._heartbeat_task.setInterval(
(self) => {
if (self.GetTimeRemaining() == 0) {
self.event.emit('heartbeat_failed', {
code: 10210,
message: '卡密已过期!'
});
}
},
1000,
this
);
};
PJYSDK.prototype.CardLogout = function () {
// 卡密退出登录
this._heartbeat_ret = {
code: -9,
message: '还未开始验证'
};
if (this._heartbeat_task) {
// 结束心跳任务
this._heartbeat_task.interrupt();
this._heartbeat_task = null;
}
if (!this._token) {
return {
code: 0,
message: 'OK'
};
}
let method = 'POST';
let path = '/v1/card/logout';
let data = {
card: this._card,
token: this._token
};
let ret = this.Request(method, path, data);
// 清理
this._token = null;
this.login_result = {
card_type: '',
expires: '',
expires_ts: 0,
config: ''
};
return ret;
};
PJYSDK.prototype.CardUnbindDevice = function () {
// 卡密解绑设备,需开发者后台配置
if (!this._token) {
return {
code: -2,
message: '请在卡密登录成功后调用'
};
}
let method = 'POST';
let path = '/v1/card/unbind_device';
let data = {
card: this._card,
device_id: this._device_id,
token: this._token
};
return this.Request(method, path, data);
};
PJYSDK.prototype.SetCardUnbindPassword = function (password) {
// 自定义设置解绑密码
if (!this._token) {
return {
code: -2,
message: '请在卡密登录成功后调用'
};
}
let method = 'POST';
let path = '/v1/card/unbind_password';
let data = {
card: this._card,
password: password,
token: this._token
};
return this.Request(method, path, data);
};
PJYSDK.prototype.CardUnbindDeviceByPassword = function (password) {
// 用户通过解绑密码解绑设备
let method = 'POST';
let path = '/v1/card/unbind_device/by_password';
let data = {
card: this._card,
password: password
};
return this.Request(method, path, data);
};
PJYSDK.prototype.CardRecharge = function (card, use_card) {
// 以卡充卡
let method = 'POST';
let path = '/v1/card/recharge';
let data = {
card: card,
use_card: use_card
};
return this.Request(method, path, data);
};
/* 用户相关 */
PJYSDK.prototype.UserRegister = function (username, password, card) {
// 用户注册(通过卡密)
let method = 'POST';
let path = '/v1/user/register';
let data = {
username: username,
password: password,
card: card,
device_id: this._device_id
};
return this.Request(method, path, data);
};
PJYSDK.prototype.UserLogin = function () {
// 用户账号登录
if (!this._username || !this._password) {
return {
code: -4,
message: '请先设置用户账号密码'
};
}
let method = 'POST';
let path = '/v1/user/login';
let data = {
username: this._username,
password: this._password,
device_id: this._device_id
};
let ret = this.Request(method, path, data);
if (ret.code == 0) {
this._token = ret.result.token;
this.login_result = ret.result;
if (this._auto_heartbeat) {
this._startUserHeartbeat();
}
}
return ret;
};
PJYSDK.prototype.UserHeartbeat = function () {
// 用户心跳,默认会自动开启
if (!this._token) {
return {
code: -2,
message: '请在用户登录成功后调用'
};
}
let method = 'POST';
let path = '/v1/user/heartbeat';
let data = {
username: this._username,
token: this._token
};
let ret = this.Request(method, path, data);
if (ret.code == 0) {
this.login_result.expires = ret.result.expires;
this.login_result.expires_ts = ret.result.expires_ts;
}
return ret;
};
PJYSDK.prototype._startUserHeartbeat = function () {
// 开启用户心跳任务
if (this._heartbeat_task) {
this._heartbeat_task.interrupt();
this._heartbeat_task = null;
}
this._heartbeat_task = threads.start(function () {
setInterval(function () {}, 10000);
});
this._heartbeat_ret = this.UserHeartbeat();
this._heartbeat_task.setInterval(
(self) => {
self._heartbeat_ret = self.UserHeartbeat();
if (self._heartbeat_ret.code != 0) {
self.event.emit('heartbeat_failed', self._heartbeat_ret);
}
},
this._heartbeat_gap,
this
);
this._heartbeat_task.setInterval(
(self) => {
if (self.GetTimeRemaining() == 0) {
self.event.emit('heartbeat_failed', {
code: 10250,
message: '用户已到期!'
});
}
},
1000,
this
);
};
PJYSDK.prototype.UserLogout = function () {
// 用户退出登录
this._heartbeat_ret = {
code: -9,
message: '还未开始验证'
};
if (this._heartbeat_task) {
// 结束心跳任务
this._heartbeat_task.interrupt();
this._heartbeat_task = null;
}
if (!this._token) {
return {
code: 0,
message: 'OK'
};
}
let method = 'POST';
let path = '/v1/user/logout';
let data = {
username: this._username,
token: this._token
};
let ret = this.Request(method, path, data);
// 清理
this._token = null;
this.login_result = {
card_type: '',
expires: '',
expires_ts: 0,
config: ''
};
return ret;
};
PJYSDK.prototype.UserChangePassword = function (username, password, new_password) {
// 用户修改密码
let method = 'POST';
let path = '/v1/user/password';
let data = {
username: username,
password: password,
new_password: new_password
};
return this.Request(method, path, data);
};
PJYSDK.prototype.UserRecharge = function (username, card) {
// 用户通过卡密充值
let method = 'POST';
let path = '/v1/user/recharge';
let data = {
username: username,
card: card
};
return this.Request(method, path, data);
};
PJYSDK.prototype.UserUnbindDevice = function () {
// 用户解绑设备,需开发者后台配置
if (!this._token) {
return {
code: -2,
message: '请在用户登录成功后调用'
};
}
let method = 'POST';
let path = '/v1/user/unbind_device';
let data = {
username: this._username,
device_id: this._device_id,
token: this._token
};
return this.Request(method, path, data);
};
/* 配置相关 */
PJYSDK.prototype.GetCardConfig = function () {
// 获取卡密配置
let method = 'GET';
let path = '/v1/card/config';
let data = {
card: this._card
};
return this.Request(method, path, data);
};
PJYSDK.prototype.UpdateCardConfig = function (config) {
// 更新卡密配置
let method = 'POST';
let path = '/v1/card/config';
let data = {
card: this._card,
config: config
};
return this.Request(method, path, data);
};
PJYSDK.prototype.GetUserConfig = function () {
// 获取用户配置
let method = 'GET';
let path = '/v1/user/config';
let data = {
user: this._username
};
return this.Request(method, path, data);
};
PJYSDK.prototype.UpdateUserConfig = function (config) {
// 更新用户配置
let method = 'POST';
let path = '/v1/user/config';
let data = {
username: this._username,
config: config
};
return this.Request(method, path, data);
};
/* 软件相关 */
PJYSDK.prototype.GetSoftwareConfig = function () {
// 获取软件配置
let method = 'GET';
let path = '/v1/software/config';
return this.Request(method, path, {});
};
PJYSDK.prototype.GetSoftwareNotice = function () {
// 获取软件通知
let method = 'GET';
let path = '/v1/software/notice';
return this.Request(method, path, {});
};
PJYSDK.prototype.GetSoftwareLatestVersion = function (current_ver) {
// 获取软件最新版本
let method = 'GET';
let path = '/v1/software/latest_ver';
let data = {
version: current_ver
};
return this.Request(method, path, data);
};
/* 试用功能 */
PJYSDK.prototype.TrialLogin = function () {
// 试用登录
let method = 'POST';
let path = '/v1/trial/login';
let data = {
device_id: this._device_id
};
let ret = this.Request(method, path, data);
if (ret.code == 0) {
this.is_trial = true;
this.login_result = ret.result;
if (this._auto_heartbeat) {
this._startTrialHeartbeat();
}
}
return ret;
};
PJYSDK.prototype.TrialHeartbeat = function () {
// 试用心跳,默认会自动调用
let method = 'POST';
let path = '/v1/trial/heartbeat';
let data = {
device_id: this._device_id
};
let ret = this.Request(method, path, data);
if (ret.code == 0) {
this.login_result.expires = ret.result.expires;
this.login_result.expires_ts = ret.result.expires_ts;
}
return ret;
};
PJYSDK.prototype._startTrialHeartbeat = function () {
// 开启试用心跳任务
if (this._heartbeat_task) {
this._heartbeat_task.interrupt();
this._heartbeat_task = null;
}
this._heartbeat_task = threads.start(function () {
setInterval(function () {}, 10000);
});
this._heartbeat_ret = this.TrialHeartbeat();
this._heartbeat_task.setInterval(
(self) => {
self._heartbeat_ret = self.TrialHeartbeat();
if (self._heartbeat_ret.code != 0) {
self.event.emit('heartbeat_failed', self._heartbeat_ret);
}
},
this._heartbeat_gap,
this
);
this._heartbeat_task.setInterval(
(self) => {
if (self.GetTimeRemaining() == 0) {
self.event.emit('heartbeat_failed', {
code: 10407,
message: '试用已到期!'
});
}
},
1000,
this
);
};
PJYSDK.prototype.TrialLogout = function () {
// 试用退出登录,没有http请求,只是清理本地记录
this.is_trial = false;
this._heartbeat_ret = {
code: -9,
message: '还未开始验证'
};
if (this._heartbeat_task) {
// 结束心跳任务
this._heartbeat_task.interrupt();
this._heartbeat_task = null;
}
// 清理
this._token = null;
this.login_result = {
card_type: '',
expires: '',
expires_ts: 0,
config: ''
};
return {
code: 0,
message: 'OK'
};
};
/* 高级功能 */
PJYSDK.prototype.GetRemoteVar = function (key) {
// 获取远程变量
let method = 'GET';
let path = '/v1/af/remote_var';
let data = {
key: key
};
return this.Request(method, path, data);
};
PJYSDK.prototype.GetRemoteData = function (key) {
// 获取远程数据
let method = 'GET';
let path = '/v1/af/remote_data';
let data = {
key: key
};
return this.Request(method, path, data);
};
PJYSDK.prototype.CreateRemoteData = function (key, value) {
// 创建远程数据
let method = 'POST';
let path = '/v1/af/remote_data';
let data = {
action: 'create',
key: key,
value: value
};
return this.Request(method, path, data);
};
PJYSDK.prototype.UpdateRemoteData = function (key, value) {
// 修改远程数据
let method = 'POST';
let path = '/v1/af/remote_data';
let data = {
action: 'update',
key: key,
value: value
};
return this.Request(method, path, data);
};
PJYSDK.prototype.DeleteRemoteData = function (key) {
// 删除远程数据
let method = 'POST';
let path = '/v1/af/remote_data';
let data = {
action: 'delete',
key: key
};
return this.Request(method, path, data);
};
PJYSDK.prototype.CallRemoteFunc = function (func_name, params) {
// 执行远程函数
let method = 'POST';
let path = '/v1/af/call_remote_func';
let ps = JSON.stringify(params);
let data = {
func_name: func_name,
params: ps
};
let ret = this.Request(method, path, data);
if (ret.code == 0 && ret.result.return) {
ret.result = JSON.parse(ret.result.return);
}
return ret;
};
return PJYSDK;
})();
/* ↑ 将PJYSDK.js文件中的代码复制粘贴到上面 ↑ */
let app_key = ''; // 填软件AppKey,开发者后台获取
let app_secret = ''; // 填软件AppSecret,开发者后台获取
let pjysdk = new PJYSDK(app_key, app_secret);
pjysdk.debug = false; // 开启debug模式,会有详细的请求日志
// 监听心跳失败事件
pjysdk.event.on('heartbeat_failed', function (hret) {
log('心跳失败,尝试重登...');
if (hret.code === 10214) {
sleep(200);
exit(); // 退出脚本
}
sleep(2000);
let login_ret = pjysdk.CardLogin();
if (login_ret.code == 0) {
// log("重登成功!");
} else {
toastLog(login_ret.message); // 重登失败
sleep(200);
exit(); // 退出脚本
}
});
// 当脚本正常或者异常退出时会触发exit事件
events.on('exit', function () {
pjysdk.CardLogout(); // 调用退出登录
log('结束运行');
});
var VIP储存 = storages.create('VIP储存');
if (VIP储存.get('VIPRESULT') != null) {
ui.vip.setText('VIP:' + VIP储存.get('VIPRESULT').expires);
}
if (VIP储存.get('VIP储存') != null) {
ui.km.setText(VIP储存.get('VIP储存'));
var card = VIP储存.get('VIP储存');
pjysdk.SetCard(card);
threads.start(function () {
let login_ret = pjysdk.CardLogin();
if (login_ret.code == 0) {
// toastLog("欢迎VIP用户");
VIP储存.put('VIP储存', card);
} else {
// 登录失败提示
toastLog(login_ret.message);
ui.vip.setText('VIP:已过期');
}
if (pjysdk.login_result.expires == '') {
// toastLog("请先激活");
} else {
VIP储存.put('VIPRESULT', pjysdk.login_result);
VIP储存.put('VIP储存', card);
ui.vip.setText('VIP:' + VIP储存.get('VIPRESULT').expires);
}
});
}
ui.jh.click(function () {
let card = ui.km.getText().toString();
if (card.trim() == '') {
toastLog('请输入卡密');
return;
}
pjysdk.SetCard(card);
threads.start(function () {
let login_ret = pjysdk.CardLogin();
if (login_ret.code == 0) {
toast('激活成功');
VIP储存.put('VIP储存', card);
} else {
// 登录失败提示
toast(login_ret.message);
}
if (pjysdk.login_result.expires == '') {
//toastLog("请先激活");
} else {
VIP储存.put('VIPRESULT', pjysdk.login_result);
ui.vip.setText('VIP:' + pjysdk.login_result.expires);
}
});
});
ui.jb.click(function () {
let card = ui.km.getText().toString();
if (card == '') {
toast('请输入卡密');
return;
}
pjysdk.SetCard(card);
threads.start(function () {
let login_ret = pjysdk.CardLogin();
if (login_ret.code == 0) {
let ret = pjysdk.CardUnbindDevice();
if (ret.code == 0) {
toast('解绑成功');
VIP储存.put('VIP储存', card);
} else {
toast(ret.message);
}
} else {
// 登录失败提示
toast(login_ret.message);
}
});
});
function 心跳验证() {
var Modified_By_QQ_Anonymous = 'Cracked_By_QQ_48497XXX9';
return Modified_By_QQ_Anonymous;
}
'ui';
activity.setTheme(com.google.android.material.R$style.Theme_MaterialComponents_DayNight_DarkActionBar);
const snackbar = com.google.android.material.snackbar.Snackbar;
var Toast = android.widget.Toast;
$debug.setMemoryLeakDetectionEnabled(false); //autojs机制即使图片回收了也会显示内存泄漏,于是就让它不显示~
ui.statusBarColor('#282828');
var AllColor = '#282828';
/*字体颜色变量*/
var TextColor = '#B3E5FC';
/*透明度*/
var alpha = '0.9';
var 软件名 = '二十六度脚本社';
var APP名 = '二十六度脚本社';
try {
  var 联系 = http.get('').body.json();
  var vx = 联系.微信;
  var 提示 = 联系.公告提示;

  if (群号 == '') {
    var 群号 = '*********';
    var vx = '*********';
  }
} catch (e) {
  var 群号 = '*********';
  var vx = '*********';
}

ui.layout(
  <drawer id="drawer">
    <vertical id="isSoftMonitor">
      <appbar bg="#282828" h="auto">
        <linear gravity="center||left">
          <toolbar id="toolbar" titleTextColor="#FFFFFF" subtitleTextColor="#FFFFFF" popupBackground="#ff7000" background="#282828" layout_weight="1" />
          <vertical margin="8 1" id="about" gravity="center" foreground="?attr/selectableItemBackground" clickable="true">
            <img w="35" h="35" scaleType="fitXY" circle="true" layout_gravity="right" src="file://res/wap6.jpg" />
          </vertical>
        </linear>
      </appbar>

      <appbar></appbar>
      <viewpager id="viewpager">
        <frame bg="#FFFFFF">
          <scroll>
            //滑动
            <vertical>
              <card margin="5 5 3 10" w="*" h="auto" cardCornerRadius="10dp" cardBackgroundColor="#3C3E46">
                <vertical w="*" h="*" bg="#FFFFFF">
                  <card w="*" h="auto" cardCornerRadius="10dp" cardBackgroundColor="#3C3E46">
                    <vertical w="*" h="*" bg="#FFFFFF">
                      <text textStyle="bold" layout_gravity="right|bottom" gravity="center" text="必需权限:点左上角开启无障碍、悬浮窗权限" w="*" h="30" textColor="#33449f" textSize="14sp" />
                    </vertical>
                  </card>
                  {/*免费专区*/}
                  <vertical w="*" h="auto" marginTop="10" gravity="center">
                    <card w="120" h="auto" margin="10 5 10 0" cardBackgroundColor="#F2F3F5" cardCornerRadius="4dp" cardElevation="1dp" foreground="?selectableItemBackground">
                      <horizontal w="*" bg="#009999" gravity="center_vertical">
                        <text textColor="#ffffff" textSize="16sp" textStyle="bold" text="免费脚本专区" w="*" gravity="center" />
                      </horizontal>
                    </card>
                  </vertical>
                  <horizontal margin="5" w="*" h="35">
                    <card id="mf1" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1">
                      <card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff">
                        <horizontal margin="5 0 5 0" gravity="center">
                          <card cardCornerRadius="5dp">
                            <img src="file://res/wap1.jpg" scaleType="fitXY" w="25" h="25" />
                          </card>
                          <vertical w="*" h="*" layout_weight="1">
                            <text text="卷轴合集" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" />
                          </vertical>
                        </horizontal>
                      </card>
                    </card>
                    <vertical w="10" h="*"></vertical>

                    <card id="mf2" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1">
                      <card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff">
                        <horizontal margin="5 0 5 0" gravity="center">
                          <card cardCornerRadius="5dp">
                            <img src="https://s3.x914.com/jxqh20/i/2024/05/28/7hb66.png" scaleType="fitXY" w="25" h="25" />
                          </card>
                          <vertical w="*" h="*" layout_weight="1">
                            <text text="微信阅读" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" />
                          </vertical>
                        </horizontal>
                      </card>
                    </card>
                    <vertical w="10" h="*"></vertical>
                    <card id="mf3" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1">
                      <card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff">
                        <horizontal margin="5 0 5 0" gravity="center">
                          <card cardCornerRadius="5dp">
                            <img src="file://res/wap3.jpg" scaleType="fitXY" w="25" h="25" />
                          </card>
                          <vertical w="*" h="*" layout_weight="1">
                            <text text="星抖短剧" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" />
                          </vertical>
                        </horizontal>
                      </card>
                    </card>
                  </horizontal>
                  <horizontal margin="5" w="*" h="35">
                    <card id="mf4" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1">
                      <card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff">
                        <horizontal margin="5 0 5 0" gravity="center">
                          <card cardCornerRadius="5dp">
                            <img src="file://res/wap2.jpg" scaleType="fitXY" w="25" h="25" />
                          </card>
                          <vertical w="*" h="*" layout_weight="1">
                            <text text="星星短剧" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" />
                          </vertical>
                        </horizontal>
                      </card>
                    </card>
                    <vertical w="10" h="*"></vertical>
                    <card id="mf5" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1">
                      <card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff">
                        <horizontal margin="5 0 5 0" gravity="center">
                          <card cardCornerRadius="5dp">
                            <img src="file://res/wap4.jpg" scaleType="fitXY" w="25" h="25" />
                          </card>
                          <vertical w="*" h="*" layout_weight="1">
                            <text text="一个圈圈" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" />
                          </vertical>
                        </horizontal>
                      </card>
                    </card>
                    <vertical w="10" h="*"></vertical>
                    <card id="mf6" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1">
                      <card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff">
                        <horizontal margin="5 0 5 0" gravity="center">
                          <card cardCornerRadius="5dp">
                            <img src="file://res/wap5.jpg" scaleType="fitXY" w="25" h="25" />
                          </card>
                          <vertical w="*" h="*" layout_weight="1">
                            <text text="享视平台" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" />
                          </vertical>
                        </horizontal>
                      </card>
                    </card>
                  </horizontal>

                  <horizontal margin="5" w="*" h="35">
                    <card id="mf7" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1">
                      <card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff">
                        <horizontal margin="5 0 5 0" gravity="center">
                          <card cardCornerRadius="5dp">
                            <img src="file://res/wap7.jpg" scaleType="fitXY" w="25" h="25" />
                          </card>
                          <vertical w="*" h="*" layout_weight="1">
                            <text text="菠萝视频" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" />
                          </vertical>
                        </horizontal>
                      </card>
                    </card>
                    <vertical w="10" h="*"></vertical>
                    <card id="mf8" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1">
                      <card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff">
                        <horizontal margin="5 0 5 0" gravity="center">
                          <card cardCornerRadius="5dp">
                            <img src="file://res/wap8.jpg" scaleType="fitXY" w="25" h="25" />
                          </card>
                          <vertical w="*" h="*" layout_weight="1">
                            <text text="水浒豪情" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" />
                          </vertical>
                        </horizontal>
                      </card>
                    </card>
                    <vertical w="10" h="*"></vertical>
                    <card id="mf9" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1">
                      <card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff">
                        <horizontal margin="5 0 5 0" gravity="center">
                          <card cardCornerRadius="5dp">
                            <img src="file://res/wap12.jpg" scaleType="fitXY" w="25" h="25" />
                          </card>
                          <vertical w="*" h="*" layout_weight="1">
                            <text text="星火秘境" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" />
                          </vertical>
                        </horizontal>
                      </card>
                    </card>
                  </horizontal>

                  <horizontal margin="5" w="*" h="35">
                    <card id="mf10" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1">
                      <card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff">
                        <horizontal margin="5 0 5 0" gravity="center">
                          <card cardCornerRadius="5dp">
                            <img src="file://res/wap13.jpg" scaleType="fitXY" w="25" h="25" />
                          </card>
                          <vertical w="*" h="*" layout_weight="1">
                            <text text="农民世界" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" />
                          </vertical>
                        </horizontal>
                      </card>
                    </card>
                    <vertical w="215" h="*"></vertical>
                    <vertical w="10" h="*"></vertical>
                    <vertical w="10" h="*"></vertical>
                  </horizontal>

                  {/*VIP专区*/}
                  <vertical w="*" h="auto" marginTop="10" gravity="center">
                    <card w="120" h="auto" margin="10 5 10 0" cardBackgroundColor="#F2F3F5" cardCornerRadius="4dp" cardElevation="1dp" foreground="?selectableItemBackground">
                      <horizontal w="*" bg="#009999" gravity="center_vertical">
                        <text textColor="#ffffff" textSize="16sp" textStyle="bold" text="VIP脚本专区" w="*" gravity="center" />
                      </horizontal>
                    </card>
                  </vertical>
                  <horizontal margin="5" w="*" h="35">
                    <card id="vip6" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1">
                      <card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff">
                        <horizontal margin="5 0 5 0" gravity="center">
                          <card cardCornerRadius="5dp">
                            <img src="https://s3.x914.com/jxqh20/i/2024/05/28/7hb66.png" scaleType="fitXY" w="25" h="25" />
                          </card>
                          <vertical w="*" h="*" layout_weight="1">
                            <text text="微信抢福袋" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" />
                          </vertical>
                        </horizontal>
                      </card>
                    </card>
                    <vertical w="10" h="*"></vertical>
                    <card id="vip1" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1">
                      <card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff">
                        <horizontal margin="5 0 5 0" gravity="center">
                          <card cardCornerRadius="5dp">
                            <img src="https://s3.x914.com/jxqh20/i/2024/05/28/12ghi.png" scaleType="fitXY" w="25" h="25" />
                          </card>
                          <vertical w="*" h="*" layout_weight="1">
                            <text text="红果短剧" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" />
                          </vertical>
                        </horizontal>
                      </card>
                    </card>
                    <vertical w="10" h="*"></vertical>
                    <card id="vip2" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1">
                      <card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff">
                        <horizontal margin="5 0 5 0" gravity="center">
                          <card cardCornerRadius="5dp">
                            <img src="https://s3.x914.com/jxqh20/i/2024/05/28/7hmco.png" scaleType="fitXY" w="25" h="25" />
                          </card>
                          <vertical w="*" h="*" layout_weight="1">
                            <text text="常读小说" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" />
                          </vertical>
                        </horizontal>
                      </card>
                    </card>
                  </horizontal>
                  <horizontal margin="5" w="*" h="35">
                    <card id="vip7" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1">
                      <card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff">
                        <horizontal margin="5 0 5 0" gravity="center">
                          <card cardCornerRadius="5dp">
                            <img src="https://s3.x914.com/jxqh20/i/2024/05/28/12dej.png" scaleType="fitXY" w="25" h="25" />
                          </card>
                          <vertical w="*" h="*" layout_weight="1">
                            <text text="快手" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" />
                          </vertical>
                        </horizontal>
                      </card>
                    </card>
                    <vertical w="10" h="*"></vertical>
                    <card id="vip8" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1">
                      <card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff">
                        <horizontal margin="5 0 5 0" gravity="center">
                          <card cardCornerRadius="5dp">
                            <img src="https://s3.x914.com/jxqh20/i/2024/05/28/5spl.webp" scaleType="fitXY" w="25" h="25" />
                          </card>
                          <vertical w="*" h="*" layout_weight="1">
                            <text text="快手极速版" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" />
                          </vertical>
                        </horizontal>
                      </card>
                    </card>
                    <vertical w="10" h="*"></vertical>
                    <card id="vip4" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1">
                      <card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff">
                        <horizontal margin="5 0 5 0" gravity="center">
                          <card cardCornerRadius="5dp">
                            <img src="https://s3.x914.com/jxqh20/i/2024/05/28/12fw4.png" scaleType="fitXY" w="25" h="25" />
                          </card>
                          <vertical w="*" h="*" layout_weight="1">
                            <text text="有柿" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" />
                          </vertical>
                        </horizontal>
                      </card>
                    </card>
                  </horizontal>

                  <horizontal margin="5" w="*" h="35">
                    <card id="vip9" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1">
                      <card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff">
                        <horizontal margin="5 0 5 0" gravity="center">
                          <card cardCornerRadius="5dp">
                            <img src="file://res/wap11.jpg" scaleType="fitXY" w="25" h="25" />
                          </card>
                          <vertical w="*" h="*" layout_weight="1">
                            <text text="百度极速版" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" />
                          </vertical>
                        </horizontal>
                      </card>
                    </card>
                    <vertical w="10" h="*"></vertical>
                    <card id="vip3" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1">
                      <card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff">
                        <horizontal margin="5 0 5 0" gravity="center">
                          <card cardCornerRadius="5dp">
                            <img src="https://s3.x914.com/jxqh20/i/2024/05/28/12990.png" scaleType="fitXY" w="25" h="25" />
                          </card>
                          <vertical w="*" h="*" layout_weight="1">
                            <text text="蛋花小说" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" />
                          </vertical>
                        </horizontal>
                      </card>
                    </card>
                    <vertical w="10" h="*"></vertical>
                    <card id="vip5" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1">
                      <card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff">
                        <horizontal margin="5 0 5 0" gravity="center">
                          <card cardCornerRadius="5dp">
                            <img src="file://res/wap1.jpg" scaleType="fitXY" w="25" h="25" />
                          </card>
                          <vertical w="*" h="*" layout_weight="1">
                            <text text="养机脚本" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" />
                          </vertical>
                        </horizontal>
                      </card>
                    </card>
                  </horizontal>
                </vertical>
              </card>
            </vertical>
          </scroll>

          <card w="*" h="50" margin="5 5 5 10" cardCornerRadius="10" cardBackgroundColor="#0098ff" layout_gravity="bottom">
            <card w="*" h="*" margin="1" cardCornerRadius="10" cardBackgroundColor="#ffffff">
              <tabs id="tabs" w="*" h="*" textSize="5sp" />
            </card>
          </card>
        </frame>
        //==============
        <frame>
          <ScrollView>
            <vertical w="*" h="*">
              <card w="*" h="auto" margin="20 10 20 10" cardCornerRadius="10" cardBackgroundColor="#0098ff" layout_gravity="bottom">
                <card w="*" h="*" margin="1" cardCornerRadius="10" cardBackgroundColor="#ffffff">
                  <vertical w="*" h="auto" margin="20 5 20 5">
                    <horizontal>
                      <card cardCornerRadius="5dp">
                        <img src="file://res/wap1.jpg" scaleType="fitXY" w="70" h="70" />
                      </card>
                      <vertical w="*" h="70" marginLeft="10" layout_weight="1">
                        <text text="{{APP名}}" textColor="#286b88" w="*" h="*" textSize="18sp" textStyle="bold" gravity="center_vertical" layout_weight="1" />
                        <text id="XH" text="型号:null" textColor="#286b88" w="*" h="*" textSize="10sp" textStyle="bold" gravity="center_vertical" layout_weight="1" />
                        <text id="XT" text="Android:null" textColor="#286b88" w="*" h="*" textSize="10sp" textStyle="bold" gravity="center_vertical" layout_weight="1" />
                      </vertical>
                    </horizontal>
                    <card w="190" h="25" marginLeft="80" cardCornerRadius="5" cardBackgroundColor="#000000">
                      <text id="vip" text="VIP:已过期" textColor="#ffb200" w="*" h="*" textSize="13sp" textStyle="bold" gravity="center" />
                    </card>
                  </vertical>
                </card>
              </card>

              <card id="VIPXF1" w="*" h="auto" margin="20 5 20 5" cardCornerRadius="5" cardBackgroundColor="#0098ff">
                <card w="*" h="*" margin="1" cardCornerRadius="5" cardBackgroundColor="#ffffff">
                  <vertical w="*" h="auto" gravity="center">
                    <horizontal w="*" h="auto" margin="5">
                      <horizontal w="*" h="50" gravity="center_vertical" layout_weight="1">
                        <text text="卡密:" textColor="#000000" w="auto" h="auto" textSize="14sp" textStyle="bold" gravity="center_vertical" />
                        <card w="*" h="auto" margin="5 1 5 1" cardCornerRadius="5">
                          <input id="km" w="*" h="auto" text="" hint="请输入卡密" bg="#ffffff" textSize="14sp" gravity="center" />
                        </card>
                      </horizontal>
                    </horizontal>
                    <horizontal margin="10 0 10 0">
                      <card id="gmkm" w="*" h="30" cardElevation="0" cardCornerRadius="10" bg="file://./清欢/mk.png" layout_weight="1">
                        <text text="购买卡密" textColor="#286b88" gravity="center" w="*" h="*" textSize="14sp" textStyle="bold" />
                      </card>
                      <vertical w="10" h="auto"></vertical>
                      <card id="jh" w="*" h="30" marginBottom="1" cardElevation="0" cardCornerRadius="10" bg="file://./清欢/mk.png" layout_weight="1">
                        <text text="立即激活" textColor="#286b88" gravity="center" w="*" h="*" textSize="14sp" textStyle="bold" />
                      </card>
                      <vertical w="10" h="auto"></vertical>
                      <card id="jb" w="*" h="30" marginBottom="1" cardElevation="0" cardCornerRadius="10" bg="file://./清欢/mk.png" layout_weight="1">
                        <text text="解绑设备" textColor="#286b88" gravity="center" w="*" h="*" textSize="14sp" textStyle="bold" />
                      </card>
                    </horizontal>
                  </vertical>
                </card>
              </card>
              <card id="qhzs1" w="*" h="35" margin="20 5 20 5" cardCornerRadius="5" cardBackgroundColor="#0098ff">
                <card w="*" h="*" margin="1" cardCornerRadius="5" cardBackgroundColor="#ffffff">
                  <horizontal id="加群" w="*" h="*" gravity="center_vertical">
                    <img src="file://res/wap9.jpg" scaleType="fitXY" w="25" h="25" />
                    <text text="点我加群:{{群号}}" marginLeft="10" textColor="#286b88" w="*" h="*" textSize="12sp" textStyle="bold" gravity="center_vertical" layout_weight="1" />
                    <vertical w="*" h="*" gravity="center|right" margin="10 0 10 0" layout_weight="1">
                      <img src="file://res/wap9.jpg" scaleType="fitXY" w="25" h="25" />
                    </vertical>
                  </horizontal>
                </card>
              </card>

              <card id="tjxm" w="*" h="35" margin="20 5 20 5" cardCornerRadius="5" cardBackgroundColor="#0098ff">
                <card w="*" h="*" margin="1" cardCornerRadius="5" cardBackgroundColor="#ffffff">
                  <horizontal w="*" h="*" gravity="center_vertical">
                    <img src="file://./清欢/dl.png" scaleType="fitXY" w="25" h="25" />
                    <text text="推荐项目" marginLeft="10" textColor="#286b88" w="*" h="*" textSize="12sp" textStyle="bold" gravity="center_vertical" layout_weight="1" />
                    <vertical w="*" h="*" gravity="center|right" margin="10 0 10 0" layout_weight="1">
                      <img src="file://./清欢/fh.png" scaleType="fitXY" w="25" h="25" />
                    </vertical>
                  </horizontal>
                </card>
              </card>
              <card id="syjc" w="*" h="35" margin="20 5 20 5" cardCornerRadius="5" cardBackgroundColor="#0098ff">
                <card w="*" h="*" margin="1" cardCornerRadius="5" cardBackgroundColor="#ffffff">
                  <horizontal w="*" h="*" gravity="center_vertical">
                    <img src="file://./清欢/sz.png" scaleType="fitXY" w="25" h="25" />
                    <text text="使用教程" marginLeft="10" textColor="#286b88" w="*" h="*" textSize="12sp" textStyle="bold" gravity="center_vertical" layout_weight="1" />
                    <vertical w="*" h="*" gravity="center|right" margin="10 0 10 0" layout_weight="1">
                      <img src="file://./清欢/fh.png" scaleType="fitXY" w="25" h="25" />
                    </vertical>
                  </horizontal>
                </card>
              </card>

              <vertical w="*" h="60" layout_gravity="bottom"></vertical>
            </vertical>
          </ScrollView>
          <card w="*" h="50" margin="5 5 5 10" cardCornerRadius="10" cardBackgroundColor="#0098ff" layout_gravity="bottom">
            <card w="*" h="*" margin="1" cardCornerRadius="10" cardBackgroundColor="#ffffff">
              <tabs id="tabs1" w="*" h="*" textSize="5sp" />
            </card>
          </card>
        </frame>
        //==============
      </viewpager>
    </vertical>
    {/*左上角打开侧拉菜单*/}
    <vertical layout_gravity="left" clickable="true" focusable="true" bg="#282828" w="auto">
      <img w="280" h="180" scaleType="fitXY" src="file://res/wap10.jpg" />
      <vertical bg="#282828">
        <vertical margin="5 10 5 10">
          <horizontal padding="10 3">
            <vertical layout_weight="1">
              <text id="版本" text="无障碍服务" textColor="#ffffff" textStyle="bold" textSize="15" />
            </vertical>
            <Switch id="accessibilityCheckbox" scaleY="0.9" scaleX="0.9" checked="false" />
          </horizontal>
          <horizontal padding="10 3">
            <vertical layout_weight="1">
              <text text="悬浮窗功能" textColor="#ffffff" textSize="15" textStyle="bold" />
            </vertical>
            <Switch id="overlayCheckbox" scaleY="0.9" scaleX="0.9" checked="false" />
          </horizontal>
          <horizontal id="foregroundServiceCheckbox" padding="10 3">
            <vertical layout_weight="1">
              <text text="前 台 服 务" textColor="#ffffff" textSize="15" textStyle="bold" />
            </vertical>
            <Switch scaleY="0.9" scaleX="0.9" checked="true" />
          </horizontal>

          <horizontal id="加群" padding="10 13">
            <vertical layout_weight="1">
              <text text="点我加群:{{群号}}" textColor="#ffffff" textSize="13" textStyle="bold" />
              <text text="入群不定时更新更多优质零撸项目" textColor="#ffffff" textSize="11" marginTop="2" />
            </vertical>
            <img w="18" h="18" layout_gravity="right|center" src="@drawable/ic_keyboard_arrow_right_black_48dp" tint="#ffffff" marginLeft="-4" />
          </horizontal>
          <horizontal id="qqGroupButton" padding="10 5">
            <vertical layout_weight="1">
              <text id="脚本下载" text="代理火热招募中" textColor="#ffffff" textStyle="bold" textSize="13sp" />
              <text text="当前版本 | {{app.versionName}}" textColor="#ffffff" marginTop="2" textSize="11sp" />
            </vertical>
            <img w="18" h="18" layout_gravity="right|center" src="@drawable/ic_keyboard_arrow_right_black_48dp" tint="#ffffff" marginLeft="-4" />
          </horizontal>
          <horizontal id="openConsoleButton" padding="10 5">
            <vertical layout_weight="1">
              <text text="运行日志" textColor="#ffffff" textStyle="bold" textSize="13sp" />
              <text text="排查和修复应用程序错误" textColor="#ffffff" marginTop="2" textSize="11sp" />
            </vertical>
            <img w="18" h="18" layout_gravity="right|center" src="@drawable/ic_keyboard_arrow_right_black_48dp" tint="#ffffff" marginLeft="-4" />
          </horizontal>
        </vertical>
        <text padding="10 8" textColor="#ffffff" text="注:承诺以上所有权限均用于程序的运行需要,您可以根据自己实际使用需求开启或关闭部分敏感权限。" textSize="11sp" />
      </vertical>
    </vertical>
  </drawer>
);

//让工具栏左上角可以打开侧拉菜单
let customToolbar = {
  init: function (title, subtitle) {
    let toolbar = ui.toolbar;
    toolbar.title = title;
    toolbar.subtitle = subtitle;
    toolbar.titleTextColor = colors.parseColor('#FFFFFF');
    toolbar.subtitleTextColor = colors.parseColor('#FFFFFF');
    toolbar.subbackground = colors.parseColor('#FFFFFF');
    toolbar.subtitleTextView.setTextSize(android.util.TypedValue.COMPLEX_UNIT_SP, 10);
    toolbar.getTitleTextView().setTextSize(18);
    activity.setSupportActionBar(toolbar);
    toolbar.setupWithDrawer(ui.drawer);
  }
};
customToolbar.init(软件名, '诚招代理  请到我的页面联系群主');
var AccessibilityModule = (function () {
  function checkAccessibilityPermission() {
    var isAccessibilityChecked = ui.accessibilityCheckbox.isChecked();
    if (isAccessibilityChecked && auto.service == null) {
      app.startActivity({
        action: 'android.settings.ACCESSIBILITY_SETTINGS'
      });
      toast('请开启《' + app.getAppName(context.packageName) + '》的无障碍服务');
    }
    if (!isAccessibilityChecked && auto.service != null) {
      toast('关闭无障碍服务');
      auto.service.disableSelf();
    }
  }

  function checkOverlayPermission() {
    var isOverlayChecked = ui.overlayCheckbox.isChecked();
    if (isOverlayChecked && !new android.provider.Settings().canDrawOverlays(context)) {
      app.startActivity({
        action: 'android.settings.action.MANAGE_OVERLAY_PERMISSION',
        data: 'package:' + context.getPackageName()
      });
      toast('请开启《' + app.getAppName(context.packageName) + '》的悬浮窗权限');
    }
  }

  function checkForegroundServicePermission() {
    var isForegroundChecked = ui.foregroundServiceCheckbox.isChecked();
    $settings.setEnabled('foreground_service', isForegroundChecked);
  }

  function openConsole() {
    app.startActivity('console');
  }

  function openQQGroup() {
    threads.start(function () {
      try {
        toastLog('欢迎您的加入~');
        app.startActivity({
          action: 'android.intent.action.VIEW',
          data: 'mqqapi://card/show_pslcard?card_type=group&uin=' + 群号,
          packageName: 'com.tencent.mobileqq'
        });
      } catch (e) {
        log(e);
      }
      // app.openUrl("http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=x9pYipG_pAWBybE26fMjcn31-4UWuaNm&authKey=yBKqdlLnc7pNYZU7r38NEBePgTpPQ%2FaM48Nndbi7YcXQ4c9qGZelK1AMpfOnLG7B&noverify=0&group_code=812204838")
    });
  }

  function bindEvents() {
    ui.accessibilityCheckbox.setChecked(auto.service !== null);
    ui.accessibilityCheckbox.on('check', checkAccessibilityPermission);
    ui.overlayCheckbox.setChecked(new android.provider.Settings().canDrawOverlays(context));
    ui.overlayCheckbox.on('check', checkOverlayPermission);
    ui.foregroundServiceCheckbox.on('check', checkForegroundServicePermission);
    ui.openConsoleButton.on('click', openConsole);
    // ui.qqGroupButton.on("click", openQQGroup);
    ui.加群.on('click', openQQGroup);
  }

  return {
    init: function () {
      bindEvents();
    }
  };
})();
AccessibilityModule.init();
var AccessibilityModule = (function () {
  function checkAccessibilityPermission() {
    var isAccessibilityChecked = ui.accessibilityCheckbox.isChecked();
    if (isAccessibilityChecked && auto.service == null) {
      app.startActivity({
        action: 'android.settings.ACCESSIBILITY_SETTINGS'
      });
      toast('请开启《' + app.getAppName(context.packageName) + '》的无障碍服务');
    }
    if (!isAccessibilityChecked && auto.service != null) {
      toast('关闭无障碍服务');
      auto.service.disableSelf();
    }
  }

  function checkOverlayPermission() {
    var isOverlayChecked = ui.overlayCheckbox.isChecked();
    if (isOverlayChecked && !new android.provider.Settings().canDrawOverlays(context)) {
      app.startActivity({
        action: 'android.settings.action.MANAGE_OVERLAY_PERMISSION',
        data: 'package:' + context.getPackageName()
      });
      toast('请开启《' + app.getAppName(context.packageName) + '》的悬浮窗权限');
    }
  }

  function checkForegroundServicePermission() {
    var isForegroundChecked = ui.foregroundServiceCheckbox.isChecked();
    $settings.setEnabled('foreground_service', isForegroundChecked);
  }

  function openConsole() {
    app.startActivity('console');
  }

  function openQQGroup() {
    threads.start(function () {
      try {
        toastLog('欢迎您的加入~');
        app.startActivity({
          action: 'android.intent.action.VIEW',
          data: 'mqqapi://card/show_pslcard?card_type=group&uin=' + 群号,
          packageName: 'com.tencent.mobileqq'
        });
      } catch (e) {
        log(e);
      }
      // app.openUrl("http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=x9pYipG_pAWBybE26fMjcn31-4UWuaNm&authKey=yBKqdlLnc7pNYZU7r38NEBePgTpPQ%2FaM48Nndbi7YcXQ4c9qGZelK1AMpfOnLG7B&noverify=0&group_code=812204838")
    });
  }

  function bindEvents() {
    ui.accessibilityCheckbox.setChecked(auto.service !== null);
    ui.accessibilityCheckbox.on('check', checkAccessibilityPermission);
    ui.overlayCheckbox.setChecked(new android.provider.Settings().canDrawOverlays(context));
    ui.overlayCheckbox.on('check', checkOverlayPermission);
    ui.foregroundServiceCheckbox.on('check', checkForegroundServicePermission);
    ui.openConsoleButton.on('click', openConsole);
    // ui.qqGroupButton.on("click", openQQGroup);
    ui.加群.on('click', openQQGroup);
  }

  return {
    init: function () {
      bindEvents();
    }
  };
})();
ui.viewpager.setTitles(['首页', '我的']);
ui.tabs.setTabTextColors(colors.parseColor('#1874CD'), colors.parseColor('#000000'));
ui.tabs.setupWithViewPager(ui.viewpager);
ui.tabs1.setTabTextColors(colors.parseColor('#1874CD'), colors.parseColor('#000000'));
ui.tabs1.setupWithViewPager(ui.viewpager);
//页面更改侦听器
ui.viewpager.setOnPageChangeListener({
  //已选定页面发生改变时触发
  onPageSelected: function (index) {
    if (index == 0) {
    } else if (index == 1) {
    }
  }
});
ui.XH.setText('型号:' + device.brand);
ui.XT.setText('Android:' + device.release);
//========
function qun(number) {
  if (number) {
    app.startActivity({
      action: 'android.intent.action.VIEW',
      data: 'mqqapi://card/show_pslcard?src_type=internal&version=1&uin=' + number + '&card_type=group&source=qrcode',
      packageName: 'com.tencent.mobileqq'
    });
  } else {
    toast('暂无');
  }
}
//========
ui.syjc.click(function () {
  //使用教程
  app.openUrl('https://flowus.cn/wapccs/share/3f1acc35-1fc6-4f8f-9cd8-62d94a066d28');
});
ui.gmkm.click(function () {
  app.openUrl('https://wapccs.vip/shop/');
});

ui.tjxm.click(function () {
  //卷轴项目
  app.openUrl('https://flowus.cn/wapccs/share/38dc5b6e-d77b-4d3f-8c91-4899cd14b675');
});
//========

//卡密
/* ↓ 将PJYSDK.js文件中的代码复制粘贴到下面 ↓ */

const PJYSDK = (function () {
  function PJYSDK(app_key, app_secret) {
    http.__okhttp__.setMaxRetries(0);
    http.__okhttp__.setTimeout(5 * 1000);

    this.event = events.emitter();

    this.debug = true;
    this._lib_version = 'v1.13';
    this._protocol = 'http';
    this._hosts = ['api3.paojiaoyun.com', 'api2.paojiaoyun.com', 'api.paojiaoyun.com'];
    this._host = this._hosts[0];
    this._device_id = this.getDeviceID();
    this._retry_count = 9;
    this._switch_count = 0;

    this._app_key = app_key;
    this._app_secret = app_secret;

    this._card = null;
    this._username = null;
    this._password = null;
    this._token = null;

    this.is_trial = false; // 是否是试用用户
    this.login_result = {
      card_type: '',
      expires: '',
      expires_ts: 0,
      config: ''
    };

    this._auto_heartbeat = true; // 是否自动开启心跳任务
    this._heartbeat_gap = 120 * 1000; // 默认120秒
    this._heartbeat_task = null;
    this._heartbeat_ret = {
      code: -9,
      message: '还未开始验证'
    };

    this._prev_nonce = null;
    this._is_ping = false;
  }
  PJYSDK.prototype.SetBackupHosts = function (hosts) {
    // 设置备用 api host
    this._hosts.concat(hosts);
  };
  PJYSDK.prototype.switchHost = function () {
    // 切换备用 api host
    this._switch_count++;
    this._host = this._hosts[this._switch_count % this._hosts.length];
  };
  PJYSDK.prototype.SetCard = function (card) {
    this._card = card.trim();
  };
  PJYSDK.prototype.SetUser = function (username, password) {
    this._username = username.trim();
    this._password = password;
  };
  PJYSDK.prototype.getDeviceID = function () {
    let id = device.serial;
    if (id == null || id == '' || id == 'unknown') {
      id = device.getAndroidId();
    }
    if (id == null || id == '' || id == 'unknown') {
      id = device.getIMEI();
    }
    return id;
  };
  PJYSDK.prototype.MD5 = function (str) {
    try {
      let digest = java.security.MessageDigest.getInstance('md5');
      let result = digest.digest(new java.lang.String(str).getBytes('UTF-8'));
      let buffer = new java.lang.StringBuffer();
      for (let index = 0; index < result.length; index++) {
        let b = result[index];
        let number = b & 0xff;
        let str = java.lang.Integer.toHexString(number);
        if (str.length == 1) {
          buffer.append('0');
        }
        buffer.append(str);
      }
      return buffer.toString();
    } catch (error) {
      alert(error);
      return '';
    }
  };
  PJYSDK.prototype.getTimestamp = function () {
    try {
      let res = http.get('http://api.m.taobao.com/rest/api3.do?api=mtop.common.getTimestamp');
      let data = res.body.json();
      return Math.floor(data['data']['t'] / 1000) - 3;
    } catch (error) {
      try {
        let res = http.get('https://tptm.hd.mi.com/gettimestamp');
        let data = res.body.string();
        return parseInt(data.replace('var servertime=', '')) - 3;
      } catch (error) {
        return Math.floor(new Date().getTime() / 1000) - 3;
      }
    }
  };
  PJYSDK.prototype._draw_cc_params = function (body) {
    if (!body) return '';
    start = body.indexOf('?');
    if (start < 0) return '';
    end = body.indexOf('";');
    if (end < 0 || end < start) return '';
    return body.substring(start, end);
  };
  PJYSDK.prototype.Ping = function () {
    if (this._is_ping) return;
    try {
      let path = '/v1/ping';
      let url = this._protocol + '://' + this._host + path;
      let resp = http.get(url);
      let body = resp.body.string();
      if (body == 'Pong') {
        log('api连接成功');
        this._is_ping = true;
        return;
      }
      let params = this._draw_cc_params(body);
      if (params) {
        let resp2 = http.get(url + params);
        if (resp2.body.string() == 'Pong') {
          log('api连接成功');
          this._is_ping = true;
        }
      } else {
        this.switchHost();
      }
    } catch (error) {
      this.switchHost();
    }
  };
  PJYSDK.prototype.genNonce = function () {
    const ascii_str = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
    let tmp = '';
    for (let i = 0; i < 20; i++) {
      tmp += ascii_str.charAt(Math.round(Math.random() * ascii_str.length));
    }
    return this.MD5(this.getDeviceID() + this._prev_nonce + new Date().getTime() + tmp);
  };
  PJYSDK.prototype.joinParams = function (params) {
    let ps = [];
    for (let k in params) {
      ps.push(k + '=' + params[k]);
    }
    ps.sort();
    return ps.join('&');
  };
  PJYSDK.prototype.CheckRespSign = function (resp) {
    if (resp.code != 0 && resp.nonce === '' && resp.sign === '') {
      return resp;
    }

    let ps = '';
    if (resp['result']) {
      ps = this.joinParams(resp['result']);
    }

    let s = resp['code'] + resp['message'] + ps + resp['nonce'] + this._app_secret;
    let sign = this.MD5(s);
    if (sign === resp['sign']) {
      if (this._prev_nonce === null) {
        this._prev_nonce = resp['nonce'];
        return {
          code: 0,
          message: 'OK'
        };
      } else {
        if (resp['nonce'] > this._prev_nonce) {
          this._prev_nonce = resp['nonce'];
          return {
            code: 0,
            message: 'OK'
          };
        } else {
          return {
            code: -98,
            message: 'CRS:nonce校验失败'
          };
        }
      }
    }
    return {
      code: -99,
      message: 'CRS:签名校验失败'
    };
  };
  PJYSDK.prototype.retry_fib = function (num) {
    if (num > 9) {
      return 34;
    }
    let a = 0;
    let b = 1;
    for (let i = 0; i < num; i++) {
      let tmp = a + b;
      a = b;
      b = tmp;
    }
    return a;
  };
  PJYSDK.prototype._debug = function (path, params, result) {
    if (this.debug) {
      log('\n' + path, '\nparams:', params, '\nresult:', result);
    }
  };
  PJYSDK.prototype.Request = function (method, path, params) {
    this.Ping();
    // 构建公共参数
    params['app_key'] = this._app_key;

    method = method.toUpperCase();
    let max_retries = this._retry_count;
    let retries_count = 0;

    let data = {
      code: -1,
      message: '连接服务器失败'
    };
    do {
      let url = this._protocol + '://' + this._host + path;
      retries_count++;
      let sec = this.retry_fib(retries_count);

      delete params['sign'];
      params['nonce'] = this.genNonce();
      params['timestamp'] = this.getTimestamp();
      let ps = this.joinParams(params);
      let s = method + this._host + path + ps + this._app_secret;
      let sign = this.MD5(s);
      params['sign'] = sign;

      let resp, body;
      try {
        if (method === 'GET') {
          resp = http.get(url + '?' + ps + '&sign=' + sign);
        } else {
          // POST
          resp = http.post(url, params);
        }
        body = resp.body.string();
        data = JSON.parse(body);
        this._debug(method + '-' + path + ':', params, data);

        let crs = this.CheckRespSign(data);
        if (crs.code !== 0) {
          return crs;
        } else {
          return data;
        }
      } catch (error) {
        if (this.debug) {
          log('[*] request error: ', error, sec + 's后重试');
        }
        this._debug(method + '-' + path + ':', params, body);
        this.switchHost();
        sleep(sec * 1000);
      }
    } while (retries_count < max_retries);

    return data;
  };
  /* 通用 */
  PJYSDK.prototype.GetHeartbeatResult = function () {
    return this._heartbeat_ret;
  };
  PJYSDK.prototype.GetTimeRemaining = function () {
    let g = this.login_result.expires_ts - this.getTimestamp();
    if (g < 0) {
      return 0;
    }
    return g;
  };
  /* 卡密相关 */
  PJYSDK.prototype.CardLogin = function () {
    // 卡密登录
    if (!this._card) {
      return {
        code: -4,
        message: '请先设置卡密'
      };
    }
    let method = 'POST';
    let path = '/v1/card/login';
    let data = {
      card: this._card,
      device_id: this._device_id
    };
    let ret = this.Request(method, path, data);
    if (ret.code == 0) {
      this._token = ret.result.token;
      this.login_result = ret.result;
      if (this._auto_heartbeat) {
        this._startCardHeartbeat();
      }
    }
    return ret;
  };
  PJYSDK.prototype.CardHeartbeat = function () {
    // 卡密心跳,默认会自动调用
    if (!this._token) {
      return {
        code: -2,
        message: '请在卡密登录成功后调用'
      };
    }
    let method = 'POST';
    let path = '/v1/card/heartbeat';
    let data = {
      card: this._card,
      token: this._token
    };
    let ret = this.Request(method, path, data);
    if (ret.code == 0) {
      this.login_result.expires = ret.result.expires;
      this.login_result.expires_ts = ret.result.expires_ts;
    }
    return ret;
  };
  PJYSDK.prototype._startCardHeartbeat = function () {
    // 开启卡密心跳任务
    if (this._heartbeat_task) {
      this._heartbeat_task.interrupt();
      this._heartbeat_task = null;
    }
    this._heartbeat_task = threads.start(function () {
      setInterval(function () {}, 10000);
    });
    this._heartbeat_ret = this.CardHeartbeat();

    this._heartbeat_task.setInterval(
      (self) => {
        self._heartbeat_ret = self.CardHeartbeat();
        if (self._heartbeat_ret.code != 0) {
          self.event.emit('heartbeat_failed', self._heartbeat_ret);
        }
      },
      this._heartbeat_gap,
      this
    );

    this._heartbeat_task.setInterval(
      (self) => {
        if (self.GetTimeRemaining() == 0) {
          self.event.emit('heartbeat_failed', {
            code: 10210,
            message: '卡密已过期!'
          });
        }
      },
      1000,
      this
    );
  };
  PJYSDK.prototype.CardLogout = function () {
    // 卡密退出登录
    this._heartbeat_ret = {
      code: -9,
      message: '还未开始验证'
    };
    if (this._heartbeat_task) {
      // 结束心跳任务
      this._heartbeat_task.interrupt();
      this._heartbeat_task = null;
    }
    if (!this._token) {
      return {
        code: 0,
        message: 'OK'
      };
    }
    let method = 'POST';
    let path = '/v1/card/logout';
    let data = {
      card: this._card,
      token: this._token
    };
    let ret = this.Request(method, path, data);
    // 清理
    this._token = null;
    this.login_result = {
      card_type: '',
      expires: '',
      expires_ts: 0,
      config: ''
    };
    return ret;
  };
  PJYSDK.prototype.CardUnbindDevice = function () {
    // 卡密解绑设备,需开发者后台配置
    if (!this._token) {
      return {
        code: -2,
        message: '请在卡密登录成功后调用'
      };
    }
    let method = 'POST';
    let path = '/v1/card/unbind_device';
    let data = {
      card: this._card,
      device_id: this._device_id,
      token: this._token
    };
    return this.Request(method, path, data);
  };
  PJYSDK.prototype.SetCardUnbindPassword = function (password) {
    // 自定义设置解绑密码
    if (!this._token) {
      return {
        code: -2,
        message: '请在卡密登录成功后调用'
      };
    }
    let method = 'POST';
    let path = '/v1/card/unbind_password';
    let data = {
      card: this._card,
      password: password,
      token: this._token
    };
    return this.Request(method, path, data);
  };
  PJYSDK.prototype.CardUnbindDeviceByPassword = function (password) {
    // 用户通过解绑密码解绑设备
    let method = 'POST';
    let path = '/v1/card/unbind_device/by_password';
    let data = {
      card: this._card,
      password: password
    };
    return this.Request(method, path, data);
  };
  PJYSDK.prototype.CardRecharge = function (card, use_card) {
    // 以卡充卡
    let method = 'POST';
    let path = '/v1/card/recharge';
    let data = {
      card: card,
      use_card: use_card
    };
    return this.Request(method, path, data);
  };
  /* 用户相关 */
  PJYSDK.prototype.UserRegister = function (username, password, card) {
    // 用户注册(通过卡密)
    let method = 'POST';
    let path = '/v1/user/register';
    let data = {
      username: username,
      password: password,
      card: card,
      device_id: this._device_id
    };
    return this.Request(method, path, data);
  };
  PJYSDK.prototype.UserLogin = function () {
    // 用户账号登录
    if (!this._username || !this._password) {
      return {
        code: -4,
        message: '请先设置用户账号密码'
      };
    }
    let method = 'POST';
    let path = '/v1/user/login';
    let data = {
      username: this._username,
      password: this._password,
      device_id: this._device_id
    };
    let ret = this.Request(method, path, data);
    if (ret.code == 0) {
      this._token = ret.result.token;
      this.login_result = ret.result;
      if (this._auto_heartbeat) {
        this._startUserHeartbeat();
      }
    }
    return ret;
  };
  PJYSDK.prototype.UserHeartbeat = function () {
    // 用户心跳,默认会自动开启
    if (!this._token) {
      return {
        code: -2,
        message: '请在用户登录成功后调用'
      };
    }
    let method = 'POST';
    let path = '/v1/user/heartbeat';
    let data = {
      username: this._username,
      token: this._token
    };
    let ret = this.Request(method, path, data);
    if (ret.code == 0) {
      this.login_result.expires = ret.result.expires;
      this.login_result.expires_ts = ret.result.expires_ts;
    }
    return ret;
  };
  PJYSDK.prototype._startUserHeartbeat = function () {
    // 开启用户心跳任务
    if (this._heartbeat_task) {
      this._heartbeat_task.interrupt();
      this._heartbeat_task = null;
    }
    this._heartbeat_task = threads.start(function () {
      setInterval(function () {}, 10000);
    });
    this._heartbeat_ret = this.UserHeartbeat();

    this._heartbeat_task.setInterval(
      (self) => {
        self._heartbeat_ret = self.UserHeartbeat();
        if (self._heartbeat_ret.code != 0) {
          self.event.emit('heartbeat_failed', self._heartbeat_ret);
        }
      },
      this._heartbeat_gap,
      this
    );

    this._heartbeat_task.setInterval(
      (self) => {
        if (self.GetTimeRemaining() == 0) {
          self.event.emit('heartbeat_failed', {
            code: 10250,
            message: '用户已到期!'
          });
        }
      },
      1000,
      this
    );
  };
  PJYSDK.prototype.UserLogout = function () {
    // 用户退出登录
    this._heartbeat_ret = {
      code: -9,
      message: '还未开始验证'
    };
    if (this._heartbeat_task) {
      // 结束心跳任务
      this._heartbeat_task.interrupt();
      this._heartbeat_task = null;
    }
    if (!this._token) {
      return {
        code: 0,
        message: 'OK'
      };
    }
    let method = 'POST';
    let path = '/v1/user/logout';
    let data = {
      username: this._username,
      token: this._token
    };
    let ret = this.Request(method, path, data);
    // 清理
    this._token = null;
    this.login_result = {
      card_type: '',
      expires: '',
      expires_ts: 0,
      config: ''
    };
    return ret;
  };
  PJYSDK.prototype.UserChangePassword = function (username, password, new_password) {
    // 用户修改密码
    let method = 'POST';
    let path = '/v1/user/password';
    let data = {
      username: username,
      password: password,
      new_password: new_password
    };
    return this.Request(method, path, data);
  };
  PJYSDK.prototype.UserRecharge = function (username, card) {
    // 用户通过卡密充值
    let method = 'POST';
    let path = '/v1/user/recharge';
    let data = {
      username: username,
      card: card
    };
    return this.Request(method, path, data);
  };
  PJYSDK.prototype.UserUnbindDevice = function () {
    // 用户解绑设备,需开发者后台配置
    if (!this._token) {
      return {
        code: -2,
        message: '请在用户登录成功后调用'
      };
    }
    let method = 'POST';
    let path = '/v1/user/unbind_device';
    let data = {
      username: this._username,
      device_id: this._device_id,
      token: this._token
    };
    return this.Request(method, path, data);
  };
  /* 配置相关 */
  PJYSDK.prototype.GetCardConfig = function () {
    // 获取卡密配置
    let method = 'GET';
    let path = '/v1/card/config';
    let data = {
      card: this._card
    };
    return this.Request(method, path, data);
  };
  PJYSDK.prototype.UpdateCardConfig = function (config) {
    // 更新卡密配置
    let method = 'POST';
    let path = '/v1/card/config';
    let data = {
      card: this._card,
      config: config
    };
    return this.Request(method, path, data);
  };
  PJYSDK.prototype.GetUserConfig = function () {
    // 获取用户配置
    let method = 'GET';
    let path = '/v1/user/config';
    let data = {
      user: this._username
    };
    return this.Request(method, path, data);
  };
  PJYSDK.prototype.UpdateUserConfig = function (config) {
    // 更新用户配置
    let method = 'POST';
    let path = '/v1/user/config';
    let data = {
      username: this._username,
      config: config
    };
    return this.Request(method, path, data);
  };
  /* 软件相关 */
  PJYSDK.prototype.GetSoftwareConfig = function () {
    // 获取软件配置
    let method = 'GET';
    let path = '/v1/software/config';
    return this.Request(method, path, {});
  };
  PJYSDK.prototype.GetSoftwareNotice = function () {
    // 获取软件通知
    let method = 'GET';
    let path = '/v1/software/notice';
    return this.Request(method, path, {});
  };
  PJYSDK.prototype.GetSoftwareLatestVersion = function (current_ver) {
    // 获取软件最新版本
    let method = 'GET';
    let path = '/v1/software/latest_ver';
    let data = {
      version: current_ver
    };
    return this.Request(method, path, data);
  };
  /* 试用功能 */
  PJYSDK.prototype.TrialLogin = function () {
    // 试用登录
    let method = 'POST';
    let path = '/v1/trial/login';
    let data = {
      device_id: this._device_id
    };
    let ret = this.Request(method, path, data);
    if (ret.code == 0) {
      this.is_trial = true;
      this.login_result = ret.result;
      if (this._auto_heartbeat) {
        this._startTrialHeartbeat();
      }
    }
    return ret;
  };
  PJYSDK.prototype.TrialHeartbeat = function () {
    // 试用心跳,默认会自动调用
    let method = 'POST';
    let path = '/v1/trial/heartbeat';
    let data = {
      device_id: this._device_id
    };
    let ret = this.Request(method, path, data);
    if (ret.code == 0) {
      this.login_result.expires = ret.result.expires;
      this.login_result.expires_ts = ret.result.expires_ts;
    }
    return ret;
  };
  PJYSDK.prototype._startTrialHeartbeat = function () {
    // 开启试用心跳任务
    if (this._heartbeat_task) {
      this._heartbeat_task.interrupt();
      this._heartbeat_task = null;
    }
    this._heartbeat_task = threads.start(function () {
      setInterval(function () {}, 10000);
    });
    this._heartbeat_ret = this.TrialHeartbeat();

    this._heartbeat_task.setInterval(
      (self) => {
        self._heartbeat_ret = self.TrialHeartbeat();
        if (self._heartbeat_ret.code != 0) {
          self.event.emit('heartbeat_failed', self._heartbeat_ret);
        }
      },
      this._heartbeat_gap,
      this
    );

    this._heartbeat_task.setInterval(
      (self) => {
        if (self.GetTimeRemaining() == 0) {
          self.event.emit('heartbeat_failed', {
            code: 10407,
            message: '试用已到期!'
          });
        }
      },
      1000,
      this
    );
  };
  PJYSDK.prototype.TrialLogout = function () {
    // 试用退出登录,没有http请求,只是清理本地记录
    this.is_trial = false;
    this._heartbeat_ret = {
      code: -9,
      message: '还未开始验证'
    };
    if (this._heartbeat_task) {
      // 结束心跳任务
      this._heartbeat_task.interrupt();
      this._heartbeat_task = null;
    }
    // 清理
    this._token = null;
    this.login_result = {
      card_type: '',
      expires: '',
      expires_ts: 0,
      config: ''
    };
    return {
      code: 0,
      message: 'OK'
    };
  };
  /* 高级功能 */
  PJYSDK.prototype.GetRemoteVar = function (key) {
    // 获取远程变量
    let method = 'GET';
    let path = '/v1/af/remote_var';
    let data = {
      key: key
    };
    return this.Request(method, path, data);
  };
  PJYSDK.prototype.GetRemoteData = function (key) {
    // 获取远程数据
    let method = 'GET';
    let path = '/v1/af/remote_data';
    let data = {
      key: key
    };
    return this.Request(method, path, data);
  };
  PJYSDK.prototype.CreateRemoteData = function (key, value) {
    // 创建远程数据
    let method = 'POST';
    let path = '/v1/af/remote_data';
    let data = {
      action: 'create',
      key: key,
      value: value
    };
    return this.Request(method, path, data);
  };
  PJYSDK.prototype.UpdateRemoteData = function (key, value) {
    // 修改远程数据
    let method = 'POST';
    let path = '/v1/af/remote_data';
    let data = {
      action: 'update',
      key: key,
      value: value
    };
    return this.Request(method, path, data);
  };
  PJYSDK.prototype.DeleteRemoteData = function (key) {
    // 删除远程数据
    let method = 'POST';
    let path = '/v1/af/remote_data';
    let data = {
      action: 'delete',
      key: key
    };
    return this.Request(method, path, data);
  };
  PJYSDK.prototype.CallRemoteFunc = function (func_name, params) {
    // 执行远程函数
    let method = 'POST';
    let path = '/v1/af/call_remote_func';
    let ps = JSON.stringify(params);
    let data = {
      func_name: func_name,
      params: ps
    };
    let ret = this.Request(method, path, data);
    if (ret.code == 0 && ret.result.return) {
      ret.result = JSON.parse(ret.result.return);
    }
    return ret;
  };
  return PJYSDK;
})();

/* ↑ 将PJYSDK.js文件中的代码复制粘贴到上面 ↑ */

let app_key = ''; // 填软件AppKey,开发者后台获取
let app_secret = ''; // 填软件AppSecret,开发者后台获取
let pjysdk = new PJYSDK(app_key, app_secret);

pjysdk.debug = false; // 开启debug模式,会有详细的请求日志

// 监听心跳失败事件
pjysdk.event.on('heartbeat_failed', function (hret) {
  log('心跳失败,尝试重登...');
  if (hret.code === 10214) {
    sleep(200);
    exit(); // 退出脚本
  }
  sleep(2000);
  let login_ret = pjysdk.CardLogin();
  if (login_ret.code == 0) {
    // log("重登成功!");
  } else {
    toastLog(login_ret.message); // 重登失败
    sleep(200);
    exit(); // 退出脚本
  }
});

// 当脚本正常或者异常退出时会触发exit事件
events.on('exit', function () {
  pjysdk.CardLogout(); // 调用退出登录
  log('结束运行');
});

var VIP储存 = storages.create('VIP储存');
if (VIP储存.get('VIPRESULT') != null) {
  ui.vip.setText('VIP:' + VIP储存.get('VIPRESULT').expires);
}
if (VIP储存.get('VIP储存') != null) {
  ui.km.setText(VIP储存.get('VIP储存'));
  var card = VIP储存.get('VIP储存');
  pjysdk.SetCard(card);
  threads.start(function () {
    let login_ret = pjysdk.CardLogin();
    if (login_ret.code == 0) {
      // toastLog("欢迎VIP用户");
      VIP储存.put('VIP储存', card);
    } else {
      // 登录失败提示
      toastLog(login_ret.message);
      ui.vip.setText('VIP:已过期');
    }
    if (pjysdk.login_result.expires == '') {
      // toastLog("请先激活");
    } else {
      VIP储存.put('VIPRESULT', pjysdk.login_result);
      VIP储存.put('VIP储存', card);
      ui.vip.setText('VIP:' + VIP储存.get('VIPRESULT').expires);
    }
  });
}

ui.jh.click(function () {
  let card = ui.km.getText().toString();
  if (card.trim() == '') {
    toastLog('请输入卡密');
    return;
  }
  pjysdk.SetCard(card);
  threads.start(function () {
    let login_ret = pjysdk.CardLogin();
    if (login_ret.code == 0) {
      toast('激活成功');
      VIP储存.put('VIP储存', card);
    } else {
      // 登录失败提示
      toast(login_ret.message);
    }
    if (pjysdk.login_result.expires == '') {
      //toastLog("请先激活");
    } else {
      VIP储存.put('VIPRESULT', pjysdk.login_result);
      ui.vip.setText('VIP:' + pjysdk.login_result.expires);
    }
  });
});

ui.jb.click(function () {
  let card = ui.km.getText().toString();

  if (card == '') {
    toast('请输入卡密');
    return;
  }
  pjysdk.SetCard(card);
  threads.start(function () {
    let login_ret = pjysdk.CardLogin();
    if (login_ret.code == 0) {
      let ret = pjysdk.CardUnbindDevice();
      if (ret.code == 0) {
        toast('解绑成功');
        VIP储存.put('VIP储存', card);
      } else {
        toast(ret.message);
      }
    } else {
      // 登录失败提示
      toast(login_ret.message);
    }
  });
});
function 心跳验证() {
  var Modified_By_QQ_Anonymous = 'Cracked_By_QQ_48497XXX9';

  return Modified_By_QQ_Anonymous;
}
'ui'; activity.setTheme(com.google.android.material.R$style.Theme_MaterialComponents_DayNight_DarkActionBar); const snackbar = com.google.android.material.snackbar.Snackbar; var Toast = android.widget.Toast; $debug.setMemoryLeakDetectionEnabled(false); //autojs机制即使图片回收了也会显示内存泄漏,于是就让它不显示~ ui.statusBarColor('#282828'); var AllColor = '#282828'; /*字体颜色变量*/ var TextColor = '#B3E5FC'; /*透明度*/ var alpha = '0.9'; var 软件名 = '二十六度脚本社'; var APP名 = '二十六度脚本社'; try { var 联系 = http.get('').body.json(); var vx = 联系.微信; var 提示 = 联系.公告提示; if (群号 == '') { var 群号 = '*********'; var vx = '*********'; } } catch (e) { var 群号 = '*********'; var vx = '*********'; } ui.layout( <drawer id="drawer"> <vertical id="isSoftMonitor"> <appbar bg="#282828" h="auto"> <linear gravity="center||left"> <toolbar id="toolbar" titleTextColor="#FFFFFF" subtitleTextColor="#FFFFFF" popupBackground="#ff7000" background="#282828" layout_weight="1" /> <vertical margin="8 1" id="about" gravity="center" foreground="?attr/selectableItemBackground" clickable="true"> <img w="35" h="35" scaleType="fitXY" circle="true" layout_gravity="right" src="file://res/wap6.jpg" /> </vertical> </linear> </appbar> <appbar></appbar> <viewpager id="viewpager"> <frame bg="#FFFFFF"> <scroll> //滑动 <vertical> <card margin="5 5 3 10" w="*" h="auto" cardCornerRadius="10dp" cardBackgroundColor="#3C3E46"> <vertical w="*" h="*" bg="#FFFFFF"> <card w="*" h="auto" cardCornerRadius="10dp" cardBackgroundColor="#3C3E46"> <vertical w="*" h="*" bg="#FFFFFF"> <text textStyle="bold" layout_gravity="right|bottom" gravity="center" text="必需权限:点左上角开启无障碍、悬浮窗权限" w="*" h="30" textColor="#33449f" textSize="14sp" /> </vertical> </card> {/*免费专区*/} <vertical w="*" h="auto" marginTop="10" gravity="center"> <card w="120" h="auto" margin="10 5 10 0" cardBackgroundColor="#F2F3F5" cardCornerRadius="4dp" cardElevation="1dp" foreground="?selectableItemBackground"> <horizontal w="*" bg="#009999" gravity="center_vertical"> <text textColor="#ffffff" textSize="16sp" textStyle="bold" text="免费脚本专区" w="*" gravity="center" /> </horizontal> </card> </vertical> <horizontal margin="5" w="*" h="35"> <card id="mf1" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1"> <card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff"> <horizontal margin="5 0 5 0" gravity="center"> <card cardCornerRadius="5dp"> <img src="file://res/wap1.jpg" scaleType="fitXY" w="25" h="25" /> </card> <vertical w="*" h="*" layout_weight="1"> <text text="卷轴合集" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" /> </vertical> </horizontal> </card> </card> <vertical w="10" h="*"></vertical> <card id="mf2" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1"> <card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff"> <horizontal margin="5 0 5 0" gravity="center"> <card cardCornerRadius="5dp"> <img src="https://s3.x914.com/jxqh20/i/2024/05/28/7hb66.png" scaleType="fitXY" w="25" h="25" /> </card> <vertical w="*" h="*" layout_weight="1"> <text text="微信阅读" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" /> </vertical> </horizontal> </card> </card> <vertical w="10" h="*"></vertical> <card id="mf3" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1"> <card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff"> <horizontal margin="5 0 5 0" gravity="center"> <card cardCornerRadius="5dp"> <img src="file://res/wap3.jpg" scaleType="fitXY" w="25" h="25" /> </card> <vertical w="*" h="*" layout_weight="1"> <text text="星抖短剧" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" /> </vertical> </horizontal> </card> </card> </horizontal> <horizontal margin="5" w="*" h="35"> <card id="mf4" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1"> <card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff"> <horizontal margin="5 0 5 0" gravity="center"> <card cardCornerRadius="5dp"> <img src="file://res/wap2.jpg" scaleType="fitXY" w="25" h="25" /> </card> <vertical w="*" h="*" layout_weight="1"> <text text="星星短剧" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" /> </vertical> </horizontal> </card> </card> <vertical w="10" h="*"></vertical> <card id="mf5" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1"> <card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff"> <horizontal margin="5 0 5 0" gravity="center"> <card cardCornerRadius="5dp"> <img src="file://res/wap4.jpg" scaleType="fitXY" w="25" h="25" /> </card> <vertical w="*" h="*" layout_weight="1"> <text text="一个圈圈" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" /> </vertical> </horizontal> </card> </card> <vertical w="10" h="*"></vertical> <card id="mf6" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1"> <card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff"> <horizontal margin="5 0 5 0" gravity="center"> <card cardCornerRadius="5dp"> <img src="file://res/wap5.jpg" scaleType="fitXY" w="25" h="25" /> </card> <vertical w="*" h="*" layout_weight="1"> <text text="享视平台" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" /> </vertical> </horizontal> </card> </card> </horizontal> <horizontal margin="5" w="*" h="35"> <card id="mf7" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1"> <card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff"> <horizontal margin="5 0 5 0" gravity="center"> <card cardCornerRadius="5dp"> <img src="file://res/wap7.jpg" scaleType="fitXY" w="25" h="25" /> </card> <vertical w="*" h="*" layout_weight="1"> <text text="菠萝视频" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" /> </vertical> </horizontal> </card> </card> <vertical w="10" h="*"></vertical> <card id="mf8" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1"> <card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff"> <horizontal margin="5 0 5 0" gravity="center"> <card cardCornerRadius="5dp"> <img src="file://res/wap8.jpg" scaleType="fitXY" w="25" h="25" /> </card> <vertical w="*" h="*" layout_weight="1"> <text text="水浒豪情" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" /> </vertical> </horizontal> </card> </card> <vertical w="10" h="*"></vertical> <card id="mf9" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1"> <card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff"> <horizontal margin="5 0 5 0" gravity="center"> <card cardCornerRadius="5dp"> <img src="file://res/wap12.jpg" scaleType="fitXY" w="25" h="25" /> </card> <vertical w="*" h="*" layout_weight="1"> <text text="星火秘境" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" /> </vertical> </horizontal> </card> </card> </horizontal> <horizontal margin="5" w="*" h="35"> <card id="mf10" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1"> <card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff"> <horizontal margin="5 0 5 0" gravity="center"> <card cardCornerRadius="5dp"> <img src="file://res/wap13.jpg" scaleType="fitXY" w="25" h="25" /> </card> <vertical w="*" h="*" layout_weight="1"> <text text="农民世界" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" /> </vertical> </horizontal> </card> </card> <vertical w="215" h="*"></vertical> <vertical w="10" h="*"></vertical> <vertical w="10" h="*"></vertical> </horizontal> {/*VIP专区*/} <vertical w="*" h="auto" marginTop="10" gravity="center"> <card w="120" h="auto" margin="10 5 10 0" cardBackgroundColor="#F2F3F5" cardCornerRadius="4dp" cardElevation="1dp" foreground="?selectableItemBackground"> <horizontal w="*" bg="#009999" gravity="center_vertical"> <text textColor="#ffffff" textSize="16sp" textStyle="bold" text="VIP脚本专区" w="*" gravity="center" /> </horizontal> </card> </vertical> <horizontal margin="5" w="*" h="35"> <card id="vip6" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1"> <card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff"> <horizontal margin="5 0 5 0" gravity="center"> <card cardCornerRadius="5dp"> <img src="https://s3.x914.com/jxqh20/i/2024/05/28/7hb66.png" scaleType="fitXY" w="25" h="25" /> </card> <vertical w="*" h="*" layout_weight="1"> <text text="微信抢福袋" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" /> </vertical> </horizontal> </card> </card> <vertical w="10" h="*"></vertical> <card id="vip1" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1"> <card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff"> <horizontal margin="5 0 5 0" gravity="center"> <card cardCornerRadius="5dp"> <img src="https://s3.x914.com/jxqh20/i/2024/05/28/12ghi.png" scaleType="fitXY" w="25" h="25" /> </card> <vertical w="*" h="*" layout_weight="1"> <text text="红果短剧" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" /> </vertical> </horizontal> </card> </card> <vertical w="10" h="*"></vertical> <card id="vip2" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1"> <card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff"> <horizontal margin="5 0 5 0" gravity="center"> <card cardCornerRadius="5dp"> <img src="https://s3.x914.com/jxqh20/i/2024/05/28/7hmco.png" scaleType="fitXY" w="25" h="25" /> </card> <vertical w="*" h="*" layout_weight="1"> <text text="常读小说" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" /> </vertical> </horizontal> </card> </card> </horizontal> <horizontal margin="5" w="*" h="35"> <card id="vip7" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1"> <card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff"> <horizontal margin="5 0 5 0" gravity="center"> <card cardCornerRadius="5dp"> <img src="https://s3.x914.com/jxqh20/i/2024/05/28/12dej.png" scaleType="fitXY" w="25" h="25" /> </card> <vertical w="*" h="*" layout_weight="1"> <text text="快手" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" /> </vertical> </horizontal> </card> </card> <vertical w="10" h="*"></vertical> <card id="vip8" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1"> <card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff"> <horizontal margin="5 0 5 0" gravity="center"> <card cardCornerRadius="5dp"> <img src="https://s3.x914.com/jxqh20/i/2024/05/28/5spl.webp" scaleType="fitXY" w="25" h="25" /> </card> <vertical w="*" h="*" layout_weight="1"> <text text="快手极速版" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" /> </vertical> </horizontal> </card> </card> <vertical w="10" h="*"></vertical> <card id="vip4" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1"> <card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff"> <horizontal margin="5 0 5 0" gravity="center"> <card cardCornerRadius="5dp"> <img src="https://s3.x914.com/jxqh20/i/2024/05/28/12fw4.png" scaleType="fitXY" w="25" h="25" /> </card> <vertical w="*" h="*" layout_weight="1"> <text text="有柿" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" /> </vertical> </horizontal> </card> </card> </horizontal> <horizontal margin="5" w="*" h="35"> <card id="vip9" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1"> <card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff"> <horizontal margin="5 0 5 0" gravity="center"> <card cardCornerRadius="5dp"> <img src="file://res/wap11.jpg" scaleType="fitXY" w="25" h="25" /> </card> <vertical w="*" h="*" layout_weight="1"> <text text="百度极速版" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" /> </vertical> </horizontal> </card> </card> <vertical w="10" h="*"></vertical> <card id="vip3" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1"> <card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff"> <horizontal margin="5 0 5 0" gravity="center"> <card cardCornerRadius="5dp"> <img src="https://s3.x914.com/jxqh20/i/2024/05/28/12990.png" scaleType="fitXY" w="25" h="25" /> </card> <vertical w="*" h="*" layout_weight="1"> <text text="蛋花小说" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" /> </vertical> </horizontal> </card> </card> <vertical w="10" h="*"></vertical> <card id="vip5" w="*" h="*" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#0098ff" layout_weight="1"> <card w="*" h="*" margin="1" cardElevation="0" cardCornerRadius="5" cardBackgroundColor="#ffffff"> <horizontal margin="5 0 5 0" gravity="center"> <card cardCornerRadius="5dp"> <img src="file://res/wap1.jpg" scaleType="fitXY" w="25" h="25" /> </card> <vertical w="*" h="*" layout_weight="1"> <text text="养机脚本" textColor="#000000" gravity="center" w="*" h="*" textSize="13sp" textStyle="bold" layout_weight="1" /> </vertical> </horizontal> </card> </card> </horizontal> </vertical> </card> </vertical> </scroll> <card w="*" h="50" margin="5 5 5 10" cardCornerRadius="10" cardBackgroundColor="#0098ff" layout_gravity="bottom"> <card w="*" h="*" margin="1" cardCornerRadius="10" cardBackgroundColor="#ffffff"> <tabs id="tabs" w="*" h="*" textSize="5sp" /> </card> </card> </frame> //============== <frame> <ScrollView> <vertical w="*" h="*"> <card w="*" h="auto" margin="20 10 20 10" cardCornerRadius="10" cardBackgroundColor="#0098ff" layout_gravity="bottom"> <card w="*" h="*" margin="1" cardCornerRadius="10" cardBackgroundColor="#ffffff"> <vertical w="*" h="auto" margin="20 5 20 5"> <horizontal> <card cardCornerRadius="5dp"> <img src="file://res/wap1.jpg" scaleType="fitXY" w="70" h="70" /> </card> <vertical w="*" h="70" marginLeft="10" layout_weight="1"> <text text="{{APP名}}" textColor="#286b88" w="*" h="*" textSize="18sp" textStyle="bold" gravity="center_vertical" layout_weight="1" /> <text id="XH" text="型号:null" textColor="#286b88" w="*" h="*" textSize="10sp" textStyle="bold" gravity="center_vertical" layout_weight="1" /> <text id="XT" text="Android:null" textColor="#286b88" w="*" h="*" textSize="10sp" textStyle="bold" gravity="center_vertical" layout_weight="1" /> </vertical> </horizontal> <card w="190" h="25" marginLeft="80" cardCornerRadius="5" cardBackgroundColor="#000000"> <text id="vip" text="VIP:已过期" textColor="#ffb200" w="*" h="*" textSize="13sp" textStyle="bold" gravity="center" /> </card> </vertical> </card> </card> <card id="VIPXF1" w="*" h="auto" margin="20 5 20 5" cardCornerRadius="5" cardBackgroundColor="#0098ff"> <card w="*" h="*" margin="1" cardCornerRadius="5" cardBackgroundColor="#ffffff"> <vertical w="*" h="auto" gravity="center"> <horizontal w="*" h="auto" margin="5"> <horizontal w="*" h="50" gravity="center_vertical" layout_weight="1"> <text text="卡密:" textColor="#000000" w="auto" h="auto" textSize="14sp" textStyle="bold" gravity="center_vertical" /> <card w="*" h="auto" margin="5 1 5 1" cardCornerRadius="5"> <input id="km" w="*" h="auto" text="" hint="请输入卡密" bg="#ffffff" textSize="14sp" gravity="center" /> </card> </horizontal> </horizontal> <horizontal margin="10 0 10 0"> <card id="gmkm" w="*" h="30" cardElevation="0" cardCornerRadius="10" bg="file://./清欢/mk.png" layout_weight="1"> <text text="购买卡密" textColor="#286b88" gravity="center" w="*" h="*" textSize="14sp" textStyle="bold" /> </card> <vertical w="10" h="auto"></vertical> <card id="jh" w="*" h="30" marginBottom="1" cardElevation="0" cardCornerRadius="10" bg="file://./清欢/mk.png" layout_weight="1"> <text text="立即激活" textColor="#286b88" gravity="center" w="*" h="*" textSize="14sp" textStyle="bold" /> </card> <vertical w="10" h="auto"></vertical> <card id="jb" w="*" h="30" marginBottom="1" cardElevation="0" cardCornerRadius="10" bg="file://./清欢/mk.png" layout_weight="1"> <text text="解绑设备" textColor="#286b88" gravity="center" w="*" h="*" textSize="14sp" textStyle="bold" /> </card> </horizontal> </vertical> </card> </card> <card id="qhzs1" w="*" h="35" margin="20 5 20 5" cardCornerRadius="5" cardBackgroundColor="#0098ff"> <card w="*" h="*" margin="1" cardCornerRadius="5" cardBackgroundColor="#ffffff"> <horizontal id="加群" w="*" h="*" gravity="center_vertical"> <img src="file://res/wap9.jpg" scaleType="fitXY" w="25" h="25" /> <text text="点我加群:{{群号}}" marginLeft="10" textColor="#286b88" w="*" h="*" textSize="12sp" textStyle="bold" gravity="center_vertical" layout_weight="1" /> <vertical w="*" h="*" gravity="center|right" margin="10 0 10 0" layout_weight="1"> <img src="file://res/wap9.jpg" scaleType="fitXY" w="25" h="25" /> </vertical> </horizontal> </card> </card> <card id="tjxm" w="*" h="35" margin="20 5 20 5" cardCornerRadius="5" cardBackgroundColor="#0098ff"> <card w="*" h="*" margin="1" cardCornerRadius="5" cardBackgroundColor="#ffffff"> <horizontal w="*" h="*" gravity="center_vertical"> <img src="file://./清欢/dl.png" scaleType="fitXY" w="25" h="25" /> <text text="推荐项目" marginLeft="10" textColor="#286b88" w="*" h="*" textSize="12sp" textStyle="bold" gravity="center_vertical" layout_weight="1" /> <vertical w="*" h="*" gravity="center|right" margin="10 0 10 0" layout_weight="1"> <img src="file://./清欢/fh.png" scaleType="fitXY" w="25" h="25" /> </vertical> </horizontal> </card> </card> <card id="syjc" w="*" h="35" margin="20 5 20 5" cardCornerRadius="5" cardBackgroundColor="#0098ff"> <card w="*" h="*" margin="1" cardCornerRadius="5" cardBackgroundColor="#ffffff"> <horizontal w="*" h="*" gravity="center_vertical"> <img src="file://./清欢/sz.png" scaleType="fitXY" w="25" h="25" /> <text text="使用教程" marginLeft="10" textColor="#286b88" w="*" h="*" textSize="12sp" textStyle="bold" gravity="center_vertical" layout_weight="1" /> <vertical w="*" h="*" gravity="center|right" margin="10 0 10 0" layout_weight="1"> <img src="file://./清欢/fh.png" scaleType="fitXY" w="25" h="25" /> </vertical> </horizontal> </card> </card> <vertical w="*" h="60" layout_gravity="bottom"></vertical> </vertical> </ScrollView> <card w="*" h="50" margin="5 5 5 10" cardCornerRadius="10" cardBackgroundColor="#0098ff" layout_gravity="bottom"> <card w="*" h="*" margin="1" cardCornerRadius="10" cardBackgroundColor="#ffffff"> <tabs id="tabs1" w="*" h="*" textSize="5sp" /> </card> </card> </frame> //============== </viewpager> </vertical> {/*左上角打开侧拉菜单*/} <vertical layout_gravity="left" clickable="true" focusable="true" bg="#282828" w="auto"> <img w="280" h="180" scaleType="fitXY" src="file://res/wap10.jpg" /> <vertical bg="#282828"> <vertical margin="5 10 5 10"> <horizontal padding="10 3"> <vertical layout_weight="1"> <text id="版本" text="无障碍服务" textColor="#ffffff" textStyle="bold" textSize="15" /> </vertical> <Switch id="accessibilityCheckbox" scaleY="0.9" scaleX="0.9" checked="false" /> </horizontal> <horizontal padding="10 3"> <vertical layout_weight="1"> <text text="悬浮窗功能" textColor="#ffffff" textSize="15" textStyle="bold" /> </vertical> <Switch id="overlayCheckbox" scaleY="0.9" scaleX="0.9" checked="false" /> </horizontal> <horizontal id="foregroundServiceCheckbox" padding="10 3"> <vertical layout_weight="1"> <text text="前 台 服 务" textColor="#ffffff" textSize="15" textStyle="bold" /> </vertical> <Switch scaleY="0.9" scaleX="0.9" checked="true" /> </horizontal> <horizontal id="加群" padding="10 13"> <vertical layout_weight="1"> <text text="点我加群:{{群号}}" textColor="#ffffff" textSize="13" textStyle="bold" /> <text text="入群不定时更新更多优质零撸项目" textColor="#ffffff" textSize="11" marginTop="2" /> </vertical> <img w="18" h="18" layout_gravity="right|center" src="@drawable/ic_keyboard_arrow_right_black_48dp" tint="#ffffff" marginLeft="-4" /> </horizontal> <horizontal id="qqGroupButton" padding="10 5"> <vertical layout_weight="1"> <text id="脚本下载" text="代理火热招募中" textColor="#ffffff" textStyle="bold" textSize="13sp" /> <text text="当前版本 | {{app.versionName}}" textColor="#ffffff" marginTop="2" textSize="11sp" /> </vertical> <img w="18" h="18" layout_gravity="right|center" src="@drawable/ic_keyboard_arrow_right_black_48dp" tint="#ffffff" marginLeft="-4" /> </horizontal> <horizontal id="openConsoleButton" padding="10 5"> <vertical layout_weight="1"> <text text="运行日志" textColor="#ffffff" textStyle="bold" textSize="13sp" /> <text text="排查和修复应用程序错误" textColor="#ffffff" marginTop="2" textSize="11sp" /> </vertical> <img w="18" h="18" layout_gravity="right|center" src="@drawable/ic_keyboard_arrow_right_black_48dp" tint="#ffffff" marginLeft="-4" /> </horizontal> </vertical> <text padding="10 8" textColor="#ffffff" text="注:承诺以上所有权限均用于程序的运行需要,您可以根据自己实际使用需求开启或关闭部分敏感权限。" textSize="11sp" /> </vertical> </vertical> </drawer> ); //让工具栏左上角可以打开侧拉菜单 let customToolbar = { init: function (title, subtitle) { let toolbar = ui.toolbar; toolbar.title = title; toolbar.subtitle = subtitle; toolbar.titleTextColor = colors.parseColor('#FFFFFF'); toolbar.subtitleTextColor = colors.parseColor('#FFFFFF'); toolbar.subbackground = colors.parseColor('#FFFFFF'); toolbar.subtitleTextView.setTextSize(android.util.TypedValue.COMPLEX_UNIT_SP, 10); toolbar.getTitleTextView().setTextSize(18); activity.setSupportActionBar(toolbar); toolbar.setupWithDrawer(ui.drawer); } }; customToolbar.init(软件名, '诚招代理 请到我的页面联系群主'); var AccessibilityModule = (function () { function checkAccessibilityPermission() { var isAccessibilityChecked = ui.accessibilityCheckbox.isChecked(); if (isAccessibilityChecked && auto.service == null) { app.startActivity({ action: 'android.settings.ACCESSIBILITY_SETTINGS' }); toast('请开启《' + app.getAppName(context.packageName) + '》的无障碍服务'); } if (!isAccessibilityChecked && auto.service != null) { toast('关闭无障碍服务'); auto.service.disableSelf(); } } function checkOverlayPermission() { var isOverlayChecked = ui.overlayCheckbox.isChecked(); if (isOverlayChecked && !new android.provider.Settings().canDrawOverlays(context)) { app.startActivity({ action: 'android.settings.action.MANAGE_OVERLAY_PERMISSION', data: 'package:' + context.getPackageName() }); toast('请开启《' + app.getAppName(context.packageName) + '》的悬浮窗权限'); } } function checkForegroundServicePermission() { var isForegroundChecked = ui.foregroundServiceCheckbox.isChecked(); $settings.setEnabled('foreground_service', isForegroundChecked); } function openConsole() { app.startActivity('console'); } function openQQGroup() { threads.start(function () { try { toastLog('欢迎您的加入~'); app.startActivity({ action: 'android.intent.action.VIEW', data: 'mqqapi://card/show_pslcard?card_type=group&uin=' + 群号, packageName: 'com.tencent.mobileqq' }); } catch (e) { log(e); } // app.openUrl("http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=x9pYipG_pAWBybE26fMjcn31-4UWuaNm&authKey=yBKqdlLnc7pNYZU7r38NEBePgTpPQ%2FaM48Nndbi7YcXQ4c9qGZelK1AMpfOnLG7B&noverify=0&group_code=812204838") }); } function bindEvents() { ui.accessibilityCheckbox.setChecked(auto.service !== null); ui.accessibilityCheckbox.on('check', checkAccessibilityPermission); ui.overlayCheckbox.setChecked(new android.provider.Settings().canDrawOverlays(context)); ui.overlayCheckbox.on('check', checkOverlayPermission); ui.foregroundServiceCheckbox.on('check', checkForegroundServicePermission); ui.openConsoleButton.on('click', openConsole); // ui.qqGroupButton.on("click", openQQGroup); ui.加群.on('click', openQQGroup); } return { init: function () { bindEvents(); } }; })(); AccessibilityModule.init(); var AccessibilityModule = (function () { function checkAccessibilityPermission() { var isAccessibilityChecked = ui.accessibilityCheckbox.isChecked(); if (isAccessibilityChecked && auto.service == null) { app.startActivity({ action: 'android.settings.ACCESSIBILITY_SETTINGS' }); toast('请开启《' + app.getAppName(context.packageName) + '》的无障碍服务'); } if (!isAccessibilityChecked && auto.service != null) { toast('关闭无障碍服务'); auto.service.disableSelf(); } } function checkOverlayPermission() { var isOverlayChecked = ui.overlayCheckbox.isChecked(); if (isOverlayChecked && !new android.provider.Settings().canDrawOverlays(context)) { app.startActivity({ action: 'android.settings.action.MANAGE_OVERLAY_PERMISSION', data: 'package:' + context.getPackageName() }); toast('请开启《' + app.getAppName(context.packageName) + '》的悬浮窗权限'); } } function checkForegroundServicePermission() { var isForegroundChecked = ui.foregroundServiceCheckbox.isChecked(); $settings.setEnabled('foreground_service', isForegroundChecked); } function openConsole() { app.startActivity('console'); } function openQQGroup() { threads.start(function () { try { toastLog('欢迎您的加入~'); app.startActivity({ action: 'android.intent.action.VIEW', data: 'mqqapi://card/show_pslcard?card_type=group&uin=' + 群号, packageName: 'com.tencent.mobileqq' }); } catch (e) { log(e); } // app.openUrl("http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=x9pYipG_pAWBybE26fMjcn31-4UWuaNm&authKey=yBKqdlLnc7pNYZU7r38NEBePgTpPQ%2FaM48Nndbi7YcXQ4c9qGZelK1AMpfOnLG7B&noverify=0&group_code=812204838") }); } function bindEvents() { ui.accessibilityCheckbox.setChecked(auto.service !== null); ui.accessibilityCheckbox.on('check', checkAccessibilityPermission); ui.overlayCheckbox.setChecked(new android.provider.Settings().canDrawOverlays(context)); ui.overlayCheckbox.on('check', checkOverlayPermission); ui.foregroundServiceCheckbox.on('check', checkForegroundServicePermission); ui.openConsoleButton.on('click', openConsole); // ui.qqGroupButton.on("click", openQQGroup); ui.加群.on('click', openQQGroup); } return { init: function () { bindEvents(); } }; })(); ui.viewpager.setTitles(['首页', '我的']); ui.tabs.setTabTextColors(colors.parseColor('#1874CD'), colors.parseColor('#000000')); ui.tabs.setupWithViewPager(ui.viewpager); ui.tabs1.setTabTextColors(colors.parseColor('#1874CD'), colors.parseColor('#000000')); ui.tabs1.setupWithViewPager(ui.viewpager); //页面更改侦听器 ui.viewpager.setOnPageChangeListener({ //已选定页面发生改变时触发 onPageSelected: function (index) { if (index == 0) { } else if (index == 1) { } } }); ui.XH.setText('型号:' + device.brand); ui.XT.setText('Android:' + device.release); //======== function qun(number) { if (number) { app.startActivity({ action: 'android.intent.action.VIEW', data: 'mqqapi://card/show_pslcard?src_type=internal&version=1&uin=' + number + '&card_type=group&source=qrcode', packageName: 'com.tencent.mobileqq' }); } else { toast('暂无'); } } //======== ui.syjc.click(function () { //使用教程 app.openUrl('https://flowus.cn/wapccs/share/3f1acc35-1fc6-4f8f-9cd8-62d94a066d28'); }); ui.gmkm.click(function () { app.openUrl('https://wapccs.vip/shop/'); }); ui.tjxm.click(function () { //卷轴项目 app.openUrl('https://flowus.cn/wapccs/share/38dc5b6e-d77b-4d3f-8c91-4899cd14b675'); }); //======== //卡密 /* ↓ 将PJYSDK.js文件中的代码复制粘贴到下面 ↓ */ const PJYSDK = (function () { function PJYSDK(app_key, app_secret) { http.__okhttp__.setMaxRetries(0); http.__okhttp__.setTimeout(5 * 1000); this.event = events.emitter(); this.debug = true; this._lib_version = 'v1.13'; this._protocol = 'http'; this._hosts = ['api3.paojiaoyun.com', 'api2.paojiaoyun.com', 'api.paojiaoyun.com']; this._host = this._hosts[0]; this._device_id = this.getDeviceID(); this._retry_count = 9; this._switch_count = 0; this._app_key = app_key; this._app_secret = app_secret; this._card = null; this._username = null; this._password = null; this._token = null; this.is_trial = false; // 是否是试用用户 this.login_result = { card_type: '', expires: '', expires_ts: 0, config: '' }; this._auto_heartbeat = true; // 是否自动开启心跳任务 this._heartbeat_gap = 120 * 1000; // 默认120秒 this._heartbeat_task = null; this._heartbeat_ret = { code: -9, message: '还未开始验证' }; this._prev_nonce = null; this._is_ping = false; } PJYSDK.prototype.SetBackupHosts = function (hosts) { // 设置备用 api host this._hosts.concat(hosts); }; PJYSDK.prototype.switchHost = function () { // 切换备用 api host this._switch_count++; this._host = this._hosts[this._switch_count % this._hosts.length]; }; PJYSDK.prototype.SetCard = function (card) { this._card = card.trim(); }; PJYSDK.prototype.SetUser = function (username, password) { this._username = username.trim(); this._password = password; }; PJYSDK.prototype.getDeviceID = function () { let id = device.serial; if (id == null || id == '' || id == 'unknown') { id = device.getAndroidId(); } if (id == null || id == '' || id == 'unknown') { id = device.getIMEI(); } return id; }; PJYSDK.prototype.MD5 = function (str) { try { let digest = java.security.MessageDigest.getInstance('md5'); let result = digest.digest(new java.lang.String(str).getBytes('UTF-8')); let buffer = new java.lang.StringBuffer(); for (let index = 0; index < result.length; index++) { let b = result[index]; let number = b & 0xff; let str = java.lang.Integer.toHexString(number); if (str.length == 1) { buffer.append('0'); } buffer.append(str); } return buffer.toString(); } catch (error) { alert(error); return ''; } }; PJYSDK.prototype.getTimestamp = function () { try { let res = http.get('http://api.m.taobao.com/rest/api3.do?api=mtop.common.getTimestamp'); let data = res.body.json(); return Math.floor(data['data']['t'] / 1000) - 3; } catch (error) { try { let res = http.get('https://tptm.hd.mi.com/gettimestamp'); let data = res.body.string(); return parseInt(data.replace('var servertime=', '')) - 3; } catch (error) { return Math.floor(new Date().getTime() / 1000) - 3; } } }; PJYSDK.prototype._draw_cc_params = function (body) { if (!body) return ''; start = body.indexOf('?'); if (start < 0) return ''; end = body.indexOf('";'); if (end < 0 || end < start) return ''; return body.substring(start, end); }; PJYSDK.prototype.Ping = function () { if (this._is_ping) return; try { let path = '/v1/ping'; let url = this._protocol + '://' + this._host + path; let resp = http.get(url); let body = resp.body.string(); if (body == 'Pong') { log('api连接成功'); this._is_ping = true; return; } let params = this._draw_cc_params(body); if (params) { let resp2 = http.get(url + params); if (resp2.body.string() == 'Pong') { log('api连接成功'); this._is_ping = true; } } else { this.switchHost(); } } catch (error) { this.switchHost(); } }; PJYSDK.prototype.genNonce = function () { const ascii_str = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; let tmp = ''; for (let i = 0; i < 20; i++) { tmp += ascii_str.charAt(Math.round(Math.random() * ascii_str.length)); } return this.MD5(this.getDeviceID() + this._prev_nonce + new Date().getTime() + tmp); }; PJYSDK.prototype.joinParams = function (params) { let ps = []; for (let k in params) { ps.push(k + '=' + params[k]); } ps.sort(); return ps.join('&'); }; PJYSDK.prototype.CheckRespSign = function (resp) { if (resp.code != 0 && resp.nonce === '' && resp.sign === '') { return resp; } let ps = ''; if (resp['result']) { ps = this.joinParams(resp['result']); } let s = resp['code'] + resp['message'] + ps + resp['nonce'] + this._app_secret; let sign = this.MD5(s); if (sign === resp['sign']) { if (this._prev_nonce === null) { this._prev_nonce = resp['nonce']; return { code: 0, message: 'OK' }; } else { if (resp['nonce'] > this._prev_nonce) { this._prev_nonce = resp['nonce']; return { code: 0, message: 'OK' }; } else { return { code: -98, message: 'CRS:nonce校验失败' }; } } } return { code: -99, message: 'CRS:签名校验失败' }; }; PJYSDK.prototype.retry_fib = function (num) { if (num > 9) { return 34; } let a = 0; let b = 1; for (let i = 0; i < num; i++) { let tmp = a + b; a = b; b = tmp; } return a; }; PJYSDK.prototype._debug = function (path, params, result) { if (this.debug) { log('\n' + path, '\nparams:', params, '\nresult:', result); } }; PJYSDK.prototype.Request = function (method, path, params) { this.Ping(); // 构建公共参数 params['app_key'] = this._app_key; method = method.toUpperCase(); let max_retries = this._retry_count; let retries_count = 0; let data = { code: -1, message: '连接服务器失败' }; do { let url = this._protocol + '://' + this._host + path; retries_count++; let sec = this.retry_fib(retries_count); delete params['sign']; params['nonce'] = this.genNonce(); params['timestamp'] = this.getTimestamp(); let ps = this.joinParams(params); let s = method + this._host + path + ps + this._app_secret; let sign = this.MD5(s); params['sign'] = sign; let resp, body; try { if (method === 'GET') { resp = http.get(url + '?' + ps + '&sign=' + sign); } else { // POST resp = http.post(url, params); } body = resp.body.string(); data = JSON.parse(body); this._debug(method + '-' + path + ':', params, data); let crs = this.CheckRespSign(data); if (crs.code !== 0) { return crs; } else { return data; } } catch (error) { if (this.debug) { log('[*] request error: ', error, sec + 's后重试'); } this._debug(method + '-' + path + ':', params, body); this.switchHost(); sleep(sec * 1000); } } while (retries_count < max_retries); return data; }; /* 通用 */ PJYSDK.prototype.GetHeartbeatResult = function () { return this._heartbeat_ret; }; PJYSDK.prototype.GetTimeRemaining = function () { let g = this.login_result.expires_ts - this.getTimestamp(); if (g < 0) { return 0; } return g; }; /* 卡密相关 */ PJYSDK.prototype.CardLogin = function () { // 卡密登录 if (!this._card) { return { code: -4, message: '请先设置卡密' }; } let method = 'POST'; let path = '/v1/card/login'; let data = { card: this._card, device_id: this._device_id }; let ret = this.Request(method, path, data); if (ret.code == 0) { this._token = ret.result.token; this.login_result = ret.result; if (this._auto_heartbeat) { this._startCardHeartbeat(); } } return ret; }; PJYSDK.prototype.CardHeartbeat = function () { // 卡密心跳,默认会自动调用 if (!this._token) { return { code: -2, message: '请在卡密登录成功后调用' }; } let method = 'POST'; let path = '/v1/card/heartbeat'; let data = { card: this._card, token: this._token }; let ret = this.Request(method, path, data); if (ret.code == 0) { this.login_result.expires = ret.result.expires; this.login_result.expires_ts = ret.result.expires_ts; } return ret; }; PJYSDK.prototype._startCardHeartbeat = function () { // 开启卡密心跳任务 if (this._heartbeat_task) { this._heartbeat_task.interrupt(); this._heartbeat_task = null; } this._heartbeat_task = threads.start(function () { setInterval(function () {}, 10000); }); this._heartbeat_ret = this.CardHeartbeat(); this._heartbeat_task.setInterval( (self) => { self._heartbeat_ret = self.CardHeartbeat(); if (self._heartbeat_ret.code != 0) { self.event.emit('heartbeat_failed', self._heartbeat_ret); } }, this._heartbeat_gap, this ); this._heartbeat_task.setInterval( (self) => { if (self.GetTimeRemaining() == 0) { self.event.emit('heartbeat_failed', { code: 10210, message: '卡密已过期!' }); } }, 1000, this ); }; PJYSDK.prototype.CardLogout = function () { // 卡密退出登录 this._heartbeat_ret = { code: -9, message: '还未开始验证' }; if (this._heartbeat_task) { // 结束心跳任务 this._heartbeat_task.interrupt(); this._heartbeat_task = null; } if (!this._token) { return { code: 0, message: 'OK' }; } let method = 'POST'; let path = '/v1/card/logout'; let data = { card: this._card, token: this._token }; let ret = this.Request(method, path, data); // 清理 this._token = null; this.login_result = { card_type: '', expires: '', expires_ts: 0, config: '' }; return ret; }; PJYSDK.prototype.CardUnbindDevice = function () { // 卡密解绑设备,需开发者后台配置 if (!this._token) { return { code: -2, message: '请在卡密登录成功后调用' }; } let method = 'POST'; let path = '/v1/card/unbind_device'; let data = { card: this._card, device_id: this._device_id, token: this._token }; return this.Request(method, path, data); }; PJYSDK.prototype.SetCardUnbindPassword = function (password) { // 自定义设置解绑密码 if (!this._token) { return { code: -2, message: '请在卡密登录成功后调用' }; } let method = 'POST'; let path = '/v1/card/unbind_password'; let data = { card: this._card, password: password, token: this._token }; return this.Request(method, path, data); }; PJYSDK.prototype.CardUnbindDeviceByPassword = function (password) { // 用户通过解绑密码解绑设备 let method = 'POST'; let path = '/v1/card/unbind_device/by_password'; let data = { card: this._card, password: password }; return this.Request(method, path, data); }; PJYSDK.prototype.CardRecharge = function (card, use_card) { // 以卡充卡 let method = 'POST'; let path = '/v1/card/recharge'; let data = { card: card, use_card: use_card }; return this.Request(method, path, data); }; /* 用户相关 */ PJYSDK.prototype.UserRegister = function (username, password, card) { // 用户注册(通过卡密) let method = 'POST'; let path = '/v1/user/register'; let data = { username: username, password: password, card: card, device_id: this._device_id }; return this.Request(method, path, data); }; PJYSDK.prototype.UserLogin = function () { // 用户账号登录 if (!this._username || !this._password) { return { code: -4, message: '请先设置用户账号密码' }; } let method = 'POST'; let path = '/v1/user/login'; let data = { username: this._username, password: this._password, device_id: this._device_id }; let ret = this.Request(method, path, data); if (ret.code == 0) { this._token = ret.result.token; this.login_result = ret.result; if (this._auto_heartbeat) { this._startUserHeartbeat(); } } return ret; }; PJYSDK.prototype.UserHeartbeat = function () { // 用户心跳,默认会自动开启 if (!this._token) { return { code: -2, message: '请在用户登录成功后调用' }; } let method = 'POST'; let path = '/v1/user/heartbeat'; let data = { username: this._username, token: this._token }; let ret = this.Request(method, path, data); if (ret.code == 0) { this.login_result.expires = ret.result.expires; this.login_result.expires_ts = ret.result.expires_ts; } return ret; }; PJYSDK.prototype._startUserHeartbeat = function () { // 开启用户心跳任务 if (this._heartbeat_task) { this._heartbeat_task.interrupt(); this._heartbeat_task = null; } this._heartbeat_task = threads.start(function () { setInterval(function () {}, 10000); }); this._heartbeat_ret = this.UserHeartbeat(); this._heartbeat_task.setInterval( (self) => { self._heartbeat_ret = self.UserHeartbeat(); if (self._heartbeat_ret.code != 0) { self.event.emit('heartbeat_failed', self._heartbeat_ret); } }, this._heartbeat_gap, this ); this._heartbeat_task.setInterval( (self) => { if (self.GetTimeRemaining() == 0) { self.event.emit('heartbeat_failed', { code: 10250, message: '用户已到期!' }); } }, 1000, this ); }; PJYSDK.prototype.UserLogout = function () { // 用户退出登录 this._heartbeat_ret = { code: -9, message: '还未开始验证' }; if (this._heartbeat_task) { // 结束心跳任务 this._heartbeat_task.interrupt(); this._heartbeat_task = null; } if (!this._token) { return { code: 0, message: 'OK' }; } let method = 'POST'; let path = '/v1/user/logout'; let data = { username: this._username, token: this._token }; let ret = this.Request(method, path, data); // 清理 this._token = null; this.login_result = { card_type: '', expires: '', expires_ts: 0, config: '' }; return ret; }; PJYSDK.prototype.UserChangePassword = function (username, password, new_password) { // 用户修改密码 let method = 'POST'; let path = '/v1/user/password'; let data = { username: username, password: password, new_password: new_password }; return this.Request(method, path, data); }; PJYSDK.prototype.UserRecharge = function (username, card) { // 用户通过卡密充值 let method = 'POST'; let path = '/v1/user/recharge'; let data = { username: username, card: card }; return this.Request(method, path, data); }; PJYSDK.prototype.UserUnbindDevice = function () { // 用户解绑设备,需开发者后台配置 if (!this._token) { return { code: -2, message: '请在用户登录成功后调用' }; } let method = 'POST'; let path = '/v1/user/unbind_device'; let data = { username: this._username, device_id: this._device_id, token: this._token }; return this.Request(method, path, data); }; /* 配置相关 */ PJYSDK.prototype.GetCardConfig = function () { // 获取卡密配置 let method = 'GET'; let path = '/v1/card/config'; let data = { card: this._card }; return this.Request(method, path, data); }; PJYSDK.prototype.UpdateCardConfig = function (config) { // 更新卡密配置 let method = 'POST'; let path = '/v1/card/config'; let data = { card: this._card, config: config }; return this.Request(method, path, data); }; PJYSDK.prototype.GetUserConfig = function () { // 获取用户配置 let method = 'GET'; let path = '/v1/user/config'; let data = { user: this._username }; return this.Request(method, path, data); }; PJYSDK.prototype.UpdateUserConfig = function (config) { // 更新用户配置 let method = 'POST'; let path = '/v1/user/config'; let data = { username: this._username, config: config }; return this.Request(method, path, data); }; /* 软件相关 */ PJYSDK.prototype.GetSoftwareConfig = function () { // 获取软件配置 let method = 'GET'; let path = '/v1/software/config'; return this.Request(method, path, {}); }; PJYSDK.prototype.GetSoftwareNotice = function () { // 获取软件通知 let method = 'GET'; let path = '/v1/software/notice'; return this.Request(method, path, {}); }; PJYSDK.prototype.GetSoftwareLatestVersion = function (current_ver) { // 获取软件最新版本 let method = 'GET'; let path = '/v1/software/latest_ver'; let data = { version: current_ver }; return this.Request(method, path, data); }; /* 试用功能 */ PJYSDK.prototype.TrialLogin = function () { // 试用登录 let method = 'POST'; let path = '/v1/trial/login'; let data = { device_id: this._device_id }; let ret = this.Request(method, path, data); if (ret.code == 0) { this.is_trial = true; this.login_result = ret.result; if (this._auto_heartbeat) { this._startTrialHeartbeat(); } } return ret; }; PJYSDK.prototype.TrialHeartbeat = function () { // 试用心跳,默认会自动调用 let method = 'POST'; let path = '/v1/trial/heartbeat'; let data = { device_id: this._device_id }; let ret = this.Request(method, path, data); if (ret.code == 0) { this.login_result.expires = ret.result.expires; this.login_result.expires_ts = ret.result.expires_ts; } return ret; }; PJYSDK.prototype._startTrialHeartbeat = function () { // 开启试用心跳任务 if (this._heartbeat_task) { this._heartbeat_task.interrupt(); this._heartbeat_task = null; } this._heartbeat_task = threads.start(function () { setInterval(function () {}, 10000); }); this._heartbeat_ret = this.TrialHeartbeat(); this._heartbeat_task.setInterval( (self) => { self._heartbeat_ret = self.TrialHeartbeat(); if (self._heartbeat_ret.code != 0) { self.event.emit('heartbeat_failed', self._heartbeat_ret); } }, this._heartbeat_gap, this ); this._heartbeat_task.setInterval( (self) => { if (self.GetTimeRemaining() == 0) { self.event.emit('heartbeat_failed', { code: 10407, message: '试用已到期!' }); } }, 1000, this ); }; PJYSDK.prototype.TrialLogout = function () { // 试用退出登录,没有http请求,只是清理本地记录 this.is_trial = false; this._heartbeat_ret = { code: -9, message: '还未开始验证' }; if (this._heartbeat_task) { // 结束心跳任务 this._heartbeat_task.interrupt(); this._heartbeat_task = null; } // 清理 this._token = null; this.login_result = { card_type: '', expires: '', expires_ts: 0, config: '' }; return { code: 0, message: 'OK' }; }; /* 高级功能 */ PJYSDK.prototype.GetRemoteVar = function (key) { // 获取远程变量 let method = 'GET'; let path = '/v1/af/remote_var'; let data = { key: key }; return this.Request(method, path, data); }; PJYSDK.prototype.GetRemoteData = function (key) { // 获取远程数据 let method = 'GET'; let path = '/v1/af/remote_data'; let data = { key: key }; return this.Request(method, path, data); }; PJYSDK.prototype.CreateRemoteData = function (key, value) { // 创建远程数据 let method = 'POST'; let path = '/v1/af/remote_data'; let data = { action: 'create', key: key, value: value }; return this.Request(method, path, data); }; PJYSDK.prototype.UpdateRemoteData = function (key, value) { // 修改远程数据 let method = 'POST'; let path = '/v1/af/remote_data'; let data = { action: 'update', key: key, value: value }; return this.Request(method, path, data); }; PJYSDK.prototype.DeleteRemoteData = function (key) { // 删除远程数据 let method = 'POST'; let path = '/v1/af/remote_data'; let data = { action: 'delete', key: key }; return this.Request(method, path, data); }; PJYSDK.prototype.CallRemoteFunc = function (func_name, params) { // 执行远程函数 let method = 'POST'; let path = '/v1/af/call_remote_func'; let ps = JSON.stringify(params); let data = { func_name: func_name, params: ps }; let ret = this.Request(method, path, data); if (ret.code == 0 && ret.result.return) { ret.result = JSON.parse(ret.result.return); } return ret; }; return PJYSDK; })(); /* ↑ 将PJYSDK.js文件中的代码复制粘贴到上面 ↑ */ let app_key = ''; // 填软件AppKey,开发者后台获取 let app_secret = ''; // 填软件AppSecret,开发者后台获取 let pjysdk = new PJYSDK(app_key, app_secret); pjysdk.debug = false; // 开启debug模式,会有详细的请求日志 // 监听心跳失败事件 pjysdk.event.on('heartbeat_failed', function (hret) { log('心跳失败,尝试重登...'); if (hret.code === 10214) { sleep(200); exit(); // 退出脚本 } sleep(2000); let login_ret = pjysdk.CardLogin(); if (login_ret.code == 0) { // log("重登成功!"); } else { toastLog(login_ret.message); // 重登失败 sleep(200); exit(); // 退出脚本 } }); // 当脚本正常或者异常退出时会触发exit事件 events.on('exit', function () { pjysdk.CardLogout(); // 调用退出登录 log('结束运行'); }); var VIP储存 = storages.create('VIP储存'); if (VIP储存.get('VIPRESULT') != null) { ui.vip.setText('VIP:' + VIP储存.get('VIPRESULT').expires); } if (VIP储存.get('VIP储存') != null) { ui.km.setText(VIP储存.get('VIP储存')); var card = VIP储存.get('VIP储存'); pjysdk.SetCard(card); threads.start(function () { let login_ret = pjysdk.CardLogin(); if (login_ret.code == 0) { // toastLog("欢迎VIP用户"); VIP储存.put('VIP储存', card); } else { // 登录失败提示 toastLog(login_ret.message); ui.vip.setText('VIP:已过期'); } if (pjysdk.login_result.expires == '') { // toastLog("请先激活"); } else { VIP储存.put('VIPRESULT', pjysdk.login_result); VIP储存.put('VIP储存', card); ui.vip.setText('VIP:' + VIP储存.get('VIPRESULT').expires); } }); } ui.jh.click(function () { let card = ui.km.getText().toString(); if (card.trim() == '') { toastLog('请输入卡密'); return; } pjysdk.SetCard(card); threads.start(function () { let login_ret = pjysdk.CardLogin(); if (login_ret.code == 0) { toast('激活成功'); VIP储存.put('VIP储存', card); } else { // 登录失败提示 toast(login_ret.message); } if (pjysdk.login_result.expires == '') { //toastLog("请先激活"); } else { VIP储存.put('VIPRESULT', pjysdk.login_result); ui.vip.setText('VIP:' + pjysdk.login_result.expires); } }); }); ui.jb.click(function () { let card = ui.km.getText().toString(); if (card == '') { toast('请输入卡密'); return; } pjysdk.SetCard(card); threads.start(function () { let login_ret = pjysdk.CardLogin(); if (login_ret.code == 0) { let ret = pjysdk.CardUnbindDevice(); if (ret.code == 0) { toast('解绑成功'); VIP储存.put('VIP储存', card); } else { toast(ret.message); } } else { // 登录失败提示 toast(login_ret.message); } }); }); function 心跳验证() { var Modified_By_QQ_Anonymous = 'Cracked_By_QQ_48497XXX9'; return Modified_By_QQ_Anonymous; }

 

请登录后发表评论