提交 918a0374 authored 作者: 逄仁秀's avatar 逄仁秀

no message

上级 4410129e
......@@ -37,6 +37,7 @@
88B5B9272B464F7300871A63 /* KJCardManagerViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 88B5B9252B464F7300871A63 /* KJCardManagerViewController.xib */; };
88B5B9292B468ACA00871A63 /* KJGotoPayView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88B5B9282B468ACA00871A63 /* KJGotoPayView.swift */; };
88B5B92B2B47D39600871A63 /* KJEnterPayCodeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88B5B92A2B47D39600871A63 /* KJEnterPayCodeView.swift */; };
88B5B92E2B47FD2800871A63 /* DeviceManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 88B5B92D2B47FD2800871A63 /* DeviceManager.m */; };
88BE37D82AFCC15400D04877 /* KJHomeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88BE37D62AFCC15400D04877 /* KJHomeViewController.swift */; };
88BE37D92AFCC15400D04877 /* KJHomeViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 88BE37D72AFCC15400D04877 /* KJHomeViewController.xib */; };
88BE37DE2AFCC19F00D04877 /* KJChargeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88BE37DC2AFCC19F00D04877 /* KJChargeViewController.swift */; };
......@@ -53,7 +54,6 @@
88BE37F72AFCC27200D04877 /* KJEmoneyViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 88BE37F52AFCC27200D04877 /* KJEmoneyViewController.xib */; };
88BE37FA2AFCC28400D04877 /* KJAngsuranViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88BE37F82AFCC28400D04877 /* KJAngsuranViewController.swift */; };
88BE37FB2AFCC28400D04877 /* KJAngsuranViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 88BE37F92AFCC28400D04877 /* KJAngsuranViewController.xib */; };
88BE37FF2AFCCCB500D04877 /* KJDeviceInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88BE37FE2AFCCCB500D04877 /* KJDeviceInfo.swift */; };
88BE38062B074D1900D04877 /* KJLoginPhoneViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88BE38042B074D1900D04877 /* KJLoginPhoneViewController.swift */; };
88BE38072B074D1900D04877 /* KJLoginPhoneViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 88BE38052B074D1900D04877 /* KJLoginPhoneViewController.xib */; };
88BE380B2B0B2AC000D04877 /* KJHomeHeaderCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88BE38092B0B2AC000D04877 /* KJHomeHeaderCell.swift */; };
......@@ -131,6 +131,8 @@
88B5B9252B464F7300871A63 /* KJCardManagerViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KJCardManagerViewController.xib; sourceTree = "<group>"; };
88B5B9282B468ACA00871A63 /* KJGotoPayView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KJGotoPayView.swift; sourceTree = "<group>"; };
88B5B92A2B47D39600871A63 /* KJEnterPayCodeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KJEnterPayCodeView.swift; sourceTree = "<group>"; };
88B5B92C2B47FD2800871A63 /* DeviceManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DeviceManager.h; sourceTree = "<group>"; };
88B5B92D2B47FD2800871A63 /* DeviceManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DeviceManager.m; sourceTree = "<group>"; };
88BE37D62AFCC15400D04877 /* KJHomeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KJHomeViewController.swift; sourceTree = "<group>"; };
88BE37D72AFCC15400D04877 /* KJHomeViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KJHomeViewController.xib; sourceTree = "<group>"; };
88BE37DC2AFCC19F00D04877 /* KJChargeViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KJChargeViewController.swift; sourceTree = "<group>"; };
......@@ -147,7 +149,6 @@
88BE37F52AFCC27200D04877 /* KJEmoneyViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KJEmoneyViewController.xib; sourceTree = "<group>"; };
88BE37F82AFCC28400D04877 /* KJAngsuranViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KJAngsuranViewController.swift; sourceTree = "<group>"; };
88BE37F92AFCC28400D04877 /* KJAngsuranViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KJAngsuranViewController.xib; sourceTree = "<group>"; };
88BE37FE2AFCCCB500D04877 /* KJDeviceInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KJDeviceInfo.swift; sourceTree = "<group>"; };
88BE38002B0216E000D04877 /* iOS-2kj-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "iOS-2kj-Bridging-Header.h"; sourceTree = "<group>"; };
88BE38042B074D1900D04877 /* KJLoginPhoneViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KJLoginPhoneViewController.swift; sourceTree = "<group>"; };
88BE38052B074D1900D04877 /* KJLoginPhoneViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = KJLoginPhoneViewController.xib; sourceTree = "<group>"; };
......@@ -353,7 +354,8 @@
88BE37FD2AFCCC9800D04877 /* tool */ = {
isa = PBXGroup;
children = (
88BE37FE2AFCCCB500D04877 /* KJDeviceInfo.swift */,
88B5B92C2B47FD2800871A63 /* DeviceManager.h */,
88B5B92D2B47FD2800871A63 /* DeviceManager.m */,
);
path = tool;
sourceTree = "<group>";
......@@ -637,6 +639,7 @@
88B5B9162B32D5EB00871A63 /* KJRechargeModel.swift in Sources */,
88BE37F22AFCC26100D04877 /* KJPDAMViewController.swift in Sources */,
88B5B90A2B303F0800871A63 /* KJSingleChooseView.swift in Sources */,
88B5B92E2B47FD2800871A63 /* DeviceManager.m in Sources */,
88B5B9292B468ACA00871A63 /* KJGotoPayView.swift in Sources */,
88BE37D82AFCC15400D04877 /* KJHomeViewController.swift in Sources */,
88BE382A2B1894F600D04877 /* KJPersonalViewController.swift in Sources */,
......@@ -651,7 +654,6 @@
88276FAD2B284AB0009BAE13 /* KJConfigParamModel.swift in Sources */,
883B01E82AC16CFC00C3ABBF /* ViewController.swift in Sources */,
88B5B9232B4648C700871A63 /* MainWebViewController.swift in Sources */,
88BE37FF2AFCCCB500D04877 /* KJDeviceInfo.swift in Sources */,
88B5B9132B328F2400871A63 /* KJToRechargeViewController.swift in Sources */,
883B01E42AC16CFC00C3ABBF /* AppDelegate.swift in Sources */,
);
......
......@@ -45,7 +45,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
// }
// }
let yourAppToken = "no9dspqb8etc"
let yourAppToken = "lqxdq6f206bk"
let adjustConfig = ADJConfig(
appToken: yourAppToken,
environment: ADJEnvironmentProduction)
......
......@@ -254,7 +254,7 @@ extension KJHomeViewController: UICollectionViewDelegate, UICollectionViewDataSo
request.httpMethod = "POST"
request.setValue(UserDefaults.standard.string(forKey: "token") ?? "", forHTTPHeaderField: "Token")
var param = ["adid": "dd7ed39ae5cf45a077ee3eb290b3bcb3", "app_name": "xx", "batteryPercent": "-1", "device_type": "IOS", "language": "en", "net_type": "WIFI", "os": "iOS", "osVersion": "16.4", "phone_brand": "arm64", "phone_model": "iPhone", "screenHeight": "852", "screenWidth": "393", "versionName": "1.0"]
var param = ["adid": Adjust.adid(), "app_name": "EasyPay", "batteryPercent": DeviceManager.getBattery(), "device_type": "IOS", "language": "id", "net_type": DeviceManager.getNetworkType(), "os": "iOS", "osVersion": DeviceManager.version(), "phone_brand": DeviceManager.getDeviceModel(), "phone_model": "iPhone", "screenHeight": String(format: "%.0f", kjHeight), "screenWidth": String(format: "%.0f", kjWidth), "versionName": "1.0.0"]
var jsonData = NSData()
do {
jsonData = try JSONSerialization.data(withJSONObject: param, options: .prettyPrinted) as NSData
......@@ -277,7 +277,7 @@ extension KJHomeViewController: UICollectionViewDelegate, UICollectionViewDataSo
DispatchQueue.main.async {
let vc = MainWebViewController()
let string = (self.banner[index]?.url ?? "") + "&adid=" + "" + "&device_tx_id="
let string = (self.banner[index]?.url ?? "") + "&adid=" + (Adjust.adid() ?? "") + "&device_tx_id="
let txid = (dict["ret"] as! NSDictionary)["tx_id"] as! String
let url = string + txid
vc.url = url
......
......@@ -6,3 +6,4 @@
#import <MBProgressHUD.h>
#import <SDCycleScrollView.h>
#import "DeviceManager.h"
//
// DeviceManager.h
// ios_swift_2
//
// Created by 仁秀逄 on 2023/6/15.
//
#import <Foundation/Foundation.h>
///获取设备唯一标识的库
#import <AdSupport/AdSupport.h>
///获取设备类型必须的库
#import <sys/utsname.h>
//cpu
#import <mach/mach.h>
//cpu核数
#include <sys/sysctl.h>
//网络
#import <SystemConfiguration/SCNetworkReachability.h>
#import <CoreTelephony/CTTelephonyNetworkInfo.h>
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface DeviceManager : NSObject
+ (NSString *)getDeviceModel;
+ (NSString *)GetCpuUsage;
+ (NSString *)getTotalDiskspace;
+ (NSString *)getTotalMemorySize;
+ (NSString *)availableMemory;
+ (NSString *)getNetworkType;
+ (NSString *)cellularType;
+ (NSString *)getBattery;
+ (NSString *)release;
+ (NSString *)sysname;
+ (NSString *)nodename;
+ (NSString *)version;
+ (NSString *)getNowTimeTimestamp2;
@end
NS_ASSUME_NONNULL_END
//
// DeviceManager.m
// ios_swift_2
//
// Created by 仁秀逄 on 2023/6/15.
//
#import "DeviceManager.h"
@implementation DeviceManager
+ (NSString *)getDeviceModel
{
struct utsname systemInfo;
uname(&systemInfo);
NSString * deviceModel = [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];
return deviceModel;
}
+ (NSString *)GetCpuUsage {
host_basic_info_data_t hostInfo;
mach_msg_type_number_t infoCount;
infoCount = HOST_BASIC_INFO_COUNT;
host_info(mach_host_self(), HOST_BASIC_INFO, (host_info_t)&hostInfo, &infoCount);
switch (hostInfo.cpu_type) {
case CPU_TYPE_ARM:
return @"CPU_TYPE_ARM";
break;
case CPU_TYPE_ARM64:
return @"CPU_TYPE_ARM64";
break;
case CPU_TYPE_X86:
return @"CPU_TYPE_X86";
break;
case CPU_TYPE_X86_64:
return @"CPU_TYPE_X86_64";
break;
default:
return @"DEFAULT";
break;
}
}
#pragma mark 总的磁盘空间
+ (NSString *)getTotalDiskspace{
float totalSpace;
NSError *error = nil;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSDictionary *dictionary = [[NSFileManager defaultManager] attributesOfFileSystemForPath:[paths lastObject] error: &error];
if (dictionary) {
NSNumber *fileSystemSizeInBytes = [dictionary objectForKey: NSFileSystemSize];
totalSpace = [fileSystemSizeInBytes floatValue]/1024.0f/1024.0f/1024.0f;
} else {
totalSpace = 0;
}
return [NSString stringWithFormat:@"%.2fGB", totalSpace];
}
//获取总内存大小 (单位:GB)
+ (NSString *)getTotalMemorySize
{
return [NSString stringWithFormat:@"%.2fGB", [NSProcessInfo processInfo].physicalMemory/1024.0/1024.0/1024.0];
}
// 获取当前设备可用内存(单位:GB)
+ (NSString *)availableMemory
{
// vm_statistics_data_t vmStats;
//
// mach_msg_type_number_t infoCount = HOST_VM_INFO_COUNT;
//
// kern_return_t kernReturn = host_statistics(mach_host_self(),
//
// HOST_VM_INFO,
//
// (host_info_t)&vmStats,
//
// &infoCount);
//
// if (kernReturn != KERN_SUCCESS) {
//
// return NSNotFound;
//
// }
//
// return ((vm_page_size *vmStats.free_count) / 1024.0) / 1024.0 / 1024.0;
mach_port_t host_port = mach_host_self();
mach_msg_type_number_t count = HOST_VM_INFO64_COUNT;
vm_size_t page_size;
vm_statistics64_data_t vminfo;
host_page_size(host_port, &page_size);
host_statistics64(host_port, HOST_VM_INFO64, (host_info64_t)&vminfo,&count);
uint64_t free_size = (vminfo.free_count + vminfo.external_page_count + vminfo.purgeable_count - vminfo.speculative_count) * page_size;
double size = free_size / 1024.0 / 1024.0 / 1024.0;
return [NSString stringWithFormat:@"%.2fGB", size];
}
#pragma mark --- 获取当前网络状态
+ (NSString *)getNetworkType {
//创建零地址,0.0.0.0的地址表示查询本机的网络连接状态
struct sockaddr_storage zeroAddress;
bzero(&zeroAddress, sizeof(zeroAddress));
zeroAddress.ss_len = sizeof(zeroAddress);
zeroAddress.ss_family = AF_INET;
// Recover reachability flags
SCNetworkReachabilityRef defaultRouteReachability = SCNetworkReachabilityCreateWithAddress(NULL, (struct sockaddr *)&zeroAddress);
SCNetworkReachabilityFlags flags;
//获得连接的标志
BOOL didRetrieveFlags = SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags);
CFRelease(defaultRouteReachability);
//如果不能获取连接标志,则不能连接网络,直接返回
if (!didRetrieveFlags) {
return @"Offline";
}
BOOL isReachable = ((flags & kSCNetworkFlagsReachable) != 0);
BOOL needsConnection = ((flags & kSCNetworkFlagsConnectionRequired) != 0);
if (isReachable && !needsConnection) { }else{
return @"Offline";
}
if ((flags & kSCNetworkReachabilityFlagsConnectionRequired) == kSCNetworkReachabilityFlagsConnectionRequired ) {
return @"Offline";
} else if ((flags & kSCNetworkReachabilityFlagsIsWWAN) == kSCNetworkReachabilityFlagsIsWWAN) {
return [self cellularType];
} else {
return @"WiFi";
}
}
+ (NSString *)cellularType {
CTTelephonyNetworkInfo * info = [[CTTelephonyNetworkInfo alloc] init];
NSString *currentRadioAccessTechnology;
if (@available(iOS 12.1, *)) {
if (info && [info respondsToSelector:@selector(serviceCurrentRadioAccessTechnology)]) {
NSDictionary *radioDic = [info serviceCurrentRadioAccessTechnology];
if (radioDic.allKeys.count) {
currentRadioAccessTechnology = [radioDic objectForKey:radioDic.allKeys[0]];
} else {
return @"Offline";
}
} else {
return @"Offline";
}
} else {
currentRadioAccessTechnology = info.currentRadioAccessTechnology;
}
if (currentRadioAccessTechnology) {
if (@available(iOS 14.1, *)) {
if ([currentRadioAccessTechnology isEqualToString:CTRadioAccessTechnologyNRNSA] || [currentRadioAccessTechnology isEqualToString:CTRadioAccessTechnologyNR]) {
return @"Mobile";
// return @"5G";
}
}
if ([currentRadioAccessTechnology isEqualToString:CTRadioAccessTechnologyLTE]) {
return @"Mobile";
// return @"4G";
} else if ([currentRadioAccessTechnology isEqualToString:CTRadioAccessTechnologyWCDMA] || [currentRadioAccessTechnology isEqualToString:CTRadioAccessTechnologyHSDPA] || [currentRadioAccessTechnology isEqualToString:CTRadioAccessTechnologyHSUPA] || [currentRadioAccessTechnology isEqualToString:CTRadioAccessTechnologyCDMAEVDORev0] || [currentRadioAccessTechnology isEqualToString:CTRadioAccessTechnologyCDMAEVDORevA] || [currentRadioAccessTechnology isEqualToString:CTRadioAccessTechnologyCDMAEVDORevB] || [currentRadioAccessTechnology isEqualToString:CTRadioAccessTechnologyeHRPD]) {
return @"Mobile";
// return @"3G";
} else if ([currentRadioAccessTechnology isEqualToString:CTRadioAccessTechnologyEdge] || [currentRadioAccessTechnology isEqualToString:CTRadioAccessTechnologyGPRS] || [currentRadioAccessTechnology isEqualToString:CTRadioAccessTechnologyCDMA1x]) {
return @"Mobile";
// return @"2G";
} else {
return @"Mobile";
// return @"Unknow";
}
} else {
return @"Offline";
}
}
+ (NSString *)getBattery
{
[[UIDevice currentDevice] setBatteryMonitoringEnabled:YES];
NSString *battery = [NSString stringWithFormat:@"%.1f",[UIDevice currentDevice].batteryLevel * 100];
return battery;
}
+ (NSString *)release
{
struct utsname systemInfo;
uname(&systemInfo);
NSString *release = [NSString stringWithCString:systemInfo.release encoding:NSUTF8StringEncoding];
return release;
}
+ (NSString *)sysname
{
struct utsname systemInfo;
uname(&systemInfo);
NSString *sysname = [NSString stringWithCString:systemInfo.sysname encoding:NSUTF8StringEncoding];
return sysname;
}
+ (NSString *)nodename
{
struct utsname systemInfo;
uname(&systemInfo);
NSString *nodename = [NSString stringWithCString:systemInfo.nodename encoding:NSUTF8StringEncoding];
return nodename;
}
+ (NSString *)version
{
struct utsname systemInfo;
uname(&systemInfo);
NSString *nodename = [NSString stringWithCString:systemInfo.version encoding:NSUTF8StringEncoding];
return nodename;
}
+(NSString *)getNowTimeTimestamp2{
NSDate* dat = [NSDate dateWithTimeIntervalSinceNow:0];
NSTimeInterval a=[dat timeIntervalSince1970];
NSString*timeString = [NSString stringWithFormat:@"%0.f", a];//转为字符型
;
return timeString;
}
@end
//
// KJDeviceInfo.swift
// iOS-2kj
//
// Created by 仁秀逄 on 2023/11/9.
//
import UIKit
class KJDeviceInfo: NSObject {
func release() -> String {
var systemInfo = utsname()
uname(&systemInfo)
let string = Mirror(reflecting: systemInfo.release)
let str = string.children.reduce("") { partialResult, element in
guard let value = element.value as? Int8 , value as! Int != 0 else { return partialResult }
return partialResult + String ( UnicodeScalar ( UInt8 (value)))
}
return str
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论