分享一份漂亮的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;
}

 

请登录后发表评论