Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in / Register
Toggle navigation
P
PhoneManager
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Yang
PhoneManager
Commits
ea443558
Commit
ea443558
authored
Jun 05, 2025
by
shenyong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修复bug 加入开关控制
parent
58d501fb
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
124 additions
and
70 deletions
+124
-70
project.pbxproj
PhoneManager.xcodeproj/project.pbxproj
+4
-4
AppDelegate.swift
PhoneManager/AppDelegate.swift
+1
-0
ADManager.swift
PhoneManager/Class/Manager/ADManager/ADManager.swift
+69
-25
ADModel.swift
PhoneManager/Class/Manager/ADManager/ADModel.swift
+12
-0
DeviceIDManager.swift
PhoneManager/Class/Manager/APIReport/DeviceIDManager.swift
+2
-3
HttpRequest.swift
PhoneManager/Class/Manager/Request/HttpRequest.swift
+19
-16
ResponseModel.swift
PhoneManager/Class/Manager/Request/ResponseModel.swift
+11
-2
MergeButtonView.swift
...Manager/Class/Page/Contact/View/Dup/MergeButtonView.swift
+5
-11
MergePreButtonView.swift
...ager/Class/Page/Contact/View/Dup/MergePreButtonView.swift
+1
-9
No files found.
PhoneManager.xcodeproj/project.pbxproj
View file @
ea443558
...
@@ -816,7 +816,7 @@
...
@@ -816,7 +816,7 @@
CODE_SIGN_ENTITLEMENTS
=
PhoneManager/PhoneManager.entitlements
;
CODE_SIGN_ENTITLEMENTS
=
PhoneManager/PhoneManager.entitlements
;
CODE_SIGN_IDENTITY
=
"Apple Development"
;
CODE_SIGN_IDENTITY
=
"Apple Development"
;
CODE_SIGN_STYLE
=
Automatic
;
CODE_SIGN_STYLE
=
Automatic
;
CURRENT_PROJECT_VERSION
=
4
;
CURRENT_PROJECT_VERSION
=
1
;
DEVELOPMENT_TEAM
=
6K23946NQ5
;
DEVELOPMENT_TEAM
=
6K23946NQ5
;
GENERATE_INFOPLIST_FILE
=
YES
;
GENERATE_INFOPLIST_FILE
=
YES
;
INFOPLIST_FILE
=
PhoneManager/Info.plist
;
INFOPLIST_FILE
=
PhoneManager/Info.plist
;
...
@@ -838,7 +838,7 @@
...
@@ -838,7 +838,7 @@
"$(inherited)"
,
"$(inherited)"
,
"@executable_path/Frameworks"
,
"@executable_path/Frameworks"
,
);
);
MARKETING_VERSION
=
2.2.
1
;
MARKETING_VERSION
=
2.2.
2
;
PRODUCT_BUNDLE_IDENTIFIER
=
com.app.phonemanager
;
PRODUCT_BUNDLE_IDENTIFIER
=
com.app.phonemanager
;
PRODUCT_NAME
=
"$(TARGET_NAME)"
;
PRODUCT_NAME
=
"$(TARGET_NAME)"
;
PROVISIONING_PROFILE_SPECIFIER
=
""
;
PROVISIONING_PROFILE_SPECIFIER
=
""
;
...
@@ -864,7 +864,7 @@
...
@@ -864,7 +864,7 @@
CODE_SIGN_ENTITLEMENTS
=
PhoneManager/PhoneManager.entitlements
;
CODE_SIGN_ENTITLEMENTS
=
PhoneManager/PhoneManager.entitlements
;
CODE_SIGN_IDENTITY
=
"Apple Development"
;
CODE_SIGN_IDENTITY
=
"Apple Development"
;
CODE_SIGN_STYLE
=
Automatic
;
CODE_SIGN_STYLE
=
Automatic
;
CURRENT_PROJECT_VERSION
=
4
;
CURRENT_PROJECT_VERSION
=
1
;
DEVELOPMENT_TEAM
=
6K23946NQ5
;
DEVELOPMENT_TEAM
=
6K23946NQ5
;
GENERATE_INFOPLIST_FILE
=
YES
;
GENERATE_INFOPLIST_FILE
=
YES
;
INFOPLIST_FILE
=
PhoneManager/Info.plist
;
INFOPLIST_FILE
=
PhoneManager/Info.plist
;
...
@@ -886,7 +886,7 @@
...
@@ -886,7 +886,7 @@
"$(inherited)"
,
"$(inherited)"
,
"@executable_path/Frameworks"
,
"@executable_path/Frameworks"
,
);
);
MARKETING_VERSION
=
2.2.
1
;
MARKETING_VERSION
=
2.2.
2
;
PRODUCT_BUNDLE_IDENTIFIER
=
com.app.phonemanager
;
PRODUCT_BUNDLE_IDENTIFIER
=
com.app.phonemanager
;
PRODUCT_NAME
=
"$(TARGET_NAME)"
;
PRODUCT_NAME
=
"$(TARGET_NAME)"
;
PROVISIONING_PROFILE_SPECIFIER
=
""
;
PROVISIONING_PROFILE_SPECIFIER
=
""
;
...
...
PhoneManager/AppDelegate.swift
View file @
ea443558
...
@@ -189,6 +189,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
...
@@ -189,6 +189,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
APIReportManager
.
shared
.
startReport
(
type
:
.
app_start
)
APIReportManager
.
shared
.
startReport
(
type
:
.
app_start
)
UserDef
.
shard
.
saveFirstStart
()
UserDef
.
shard
.
saveFirstStart
()
}
}
ADManager
.
shared
.
getADConfig
()
ADManager
.
shared
.
getAppStoreVersion
{
value
in
ADManager
.
shared
.
getAppStoreVersion
{
value
in
if
let
version
=
value
{
if
let
version
=
value
{
ADManager
.
shared
.
onlineVersion
=
version
ADManager
.
shared
.
onlineVersion
=
version
...
...
PhoneManager/Class/Manager/ADManager/ADManager.swift
View file @
ea443558
...
@@ -13,21 +13,24 @@ import AppLovinSDK
...
@@ -13,21 +13,24 @@ import AppLovinSDK
import
FBAudienceNetwork
import
FBAudienceNetwork
import
SVProgressHUD
import
SVProgressHUD
class
ADManager
:
NSObject
,
FullScreenContentDelegate
{
class
ADManager
:
NSObject
,
FullScreenContentDelegate
{
// fixme:上线前更改
#if DEBUG
private
static
let
REWARDED_INTERSTITIALAD_KEY
:
String
=
"ca-app-pub-3480207748580737/4276457203"
private
static
let
REWARDED_INTERSTITIALAD_KEY
:
String
=
"ca-app-pub-3940256099942544/6978759866"
private
static
let
INTERSTITIALAD_KEY
:
String
=
"ca-app-pub-3480207748580737/5836950888"
private
static
let
INTERSTITIALAD_KEY
:
String
=
"ca-app-pub-3940256099942544/4411468910"
// info.plist: ca-app-pub-3480207748580737~4236262472
private
static
let
ADConfigUrl
=
"https://api.sayyedandroid.online/getconfigbackBytest?pkg=com.app.phonemanager"
// info.plist: ca-app-pub-3940256099942544~1458002511
// private static let REWARDED_INTERSTITIALAD_KEY : String = "ca-app-pub-3940256099942544/6978759866"
#else
// private static let INTERSTITIALAD_KEY : String = "ca-app-pub-3940256099942544/4411468910"
private
static
let
REWARDED_INTERSTITIALAD_KEY
:
String
=
"ca-app-pub-3480207748580737/3389219669"
// info.plist: ca-app-pub-3940256099942544~1458002511
private
static
let
INTERSTITIALAD_KEY
:
String
=
"ca-app-pub-3480207748580737/5836950888"
private
static
let
ADConfigUrl
=
"https://api.sayyedandroid.online/getconfigback?pkg=com.app.phonemanager"
//info.plist: ca-app-pub-3480207748580737~4236262472
#endif
static
let
shared
:
ADManager
=
ADManager
()
static
let
shared
:
ADManager
=
ADManager
()
private
var
adConfigModel
:
ADConfigModel
?
var
adFromName
:
String
=
""
var
adFromName
:
String
=
""
// 看完广告的回调
// 看完广告的回调
...
@@ -50,8 +53,8 @@ class ADManager : NSObject, FullScreenContentDelegate {
...
@@ -50,8 +53,8 @@ class ADManager : NSObject, FullScreenContentDelegate {
/// 记录插屏上次展示广告的时间
/// 记录插屏上次展示广告的时间
private
var
interstitiallastAdShowTime
:
Date
?
private
var
interstitiallastAdShowTime
:
Date
?
private
var
currentVersion
=
Bundle
.
main
.
infoDictionary
?[
"CFBundleShortVersionString"
]
as?
String
??
"2.2.
1
"
private
var
currentVersion
=
Bundle
.
main
.
infoDictionary
?[
"CFBundleShortVersionString"
]
as?
String
??
"2.2.
2
"
var
onlineVersion
=
"2.2.
1
"
var
onlineVersion
=
"2.2.
2
"
/// 默认每日免费删除次数
/// 默认每日免费删除次数
...
@@ -111,12 +114,6 @@ class ADManager : NSObject, FullScreenContentDelegate {
...
@@ -111,12 +114,6 @@ class ADManager : NSObject, FullScreenContentDelegate {
NSLog
(
"Adapter Name: %@, Description: %@, Latency: %f"
,
adapter
.
key
,
NSLog
(
"Adapter Name: %@, Description: %@, Latency: %f"
,
adapter
.
key
,
adapterStatus
.
description
,
adapterStatus
.
latency
)
adapterStatus
.
description
,
adapterStatus
.
latency
)
}
}
Task
{
// 同时load两个广告内容
await
self
.
loadInterstitial
()
await
self
.
loadRewardedInterstitialAd
()
}
// 隐私设置
// 隐私设置
ALPrivacySettings
.
setHasUserConsent
(
true
)
ALPrivacySettings
.
setHasUserConsent
(
true
)
}
}
...
@@ -125,7 +122,7 @@ class ADManager : NSObject, FullScreenContentDelegate {
...
@@ -125,7 +122,7 @@ class ADManager : NSObject, FullScreenContentDelegate {
/// 获取激励插页广告
/// 获取激励插页广告
func
loadRewardedInterstitialAd
()
async
{
func
loadRewardedInterstitialAd
()
async
{
guard
dealVersionShowAD
()
else
{
guard
dealVersionShowAD
()
,
dealConfigShowAD
(
.
reward
)
else
{
return
return
}
}
...
@@ -184,7 +181,7 @@ class ADManager : NSObject, FullScreenContentDelegate {
...
@@ -184,7 +181,7 @@ class ADManager : NSObject, FullScreenContentDelegate {
/// 获取单纯的插页广告
/// 获取单纯的插页广告
fileprivate
func
loadInterstitial
()
async
{
fileprivate
func
loadInterstitial
()
async
{
guard
dealVersionShowAD
()
else
{
guard
dealVersionShowAD
()
,
dealConfigShowAD
(
.
inter
)
else
{
return
return
}
}
...
@@ -243,7 +240,7 @@ class ADManager : NSObject, FullScreenContentDelegate {
...
@@ -243,7 +240,7 @@ class ADManager : NSObject, FullScreenContentDelegate {
func
showRewardedInterstitialAd
(
from
:
String
,
func
showRewardedInterstitialAd
(
from
:
String
,
finisedCallBack
:(
@escaping
()
->
Void
),
finisedCallBack
:(
@escaping
()
->
Void
),
showFailBlock
:
@escaping
(
ADShowError
?)
->
Void
)
{
showFailBlock
:
@escaping
(
ADShowError
?)
->
Void
)
{
guard
dealVersionShowAD
()
else
{
guard
dealVersionShowAD
()
,
dealConfigShowAD
(
.
reward
)
else
{
rewardedInterstitialAd
=
nil
rewardedInterstitialAd
=
nil
self
.
finisedCallBack
=
finisedCallBack
self
.
finisedCallBack
=
finisedCallBack
finisedCallBack
()
finisedCallBack
()
...
@@ -302,7 +299,7 @@ class ADManager : NSObject, FullScreenContentDelegate {
...
@@ -302,7 +299,7 @@ class ADManager : NSObject, FullScreenContentDelegate {
finisedCallBack
:
@escaping(()
->
Void
),
finisedCallBack
:
@escaping(()
->
Void
),
showFailBlock
:
@escaping
((
ADShowError
?)
->
Void
))
{
showFailBlock
:
@escaping
((
ADShowError
?)
->
Void
))
{
guard
dealVersionShowAD
()
else
{
guard
dealVersionShowAD
()
,
dealConfigShowAD
(
.
inter
)
else
{
self
.
finisedCallBack
=
finisedCallBack
self
.
finisedCallBack
=
finisedCallBack
finisedCallBack
()
finisedCallBack
()
interstitial
=
nil
interstitial
=
nil
...
@@ -477,6 +474,20 @@ class ADManager : NSObject, FullScreenContentDelegate {
...
@@ -477,6 +474,20 @@ class ADManager : NSObject, FullScreenContentDelegate {
}
}
}
}
}
}
func
failShowErrMessage
(){
// 这里如果还没有,则弹出框
DispatchQueue
.
main
.
async
{
let
alert
=
UIAlertController
(
title
:
nil
,
message
:
"Ad wasn't ready"
,
preferredStyle
:
.
alert
)
GETCURRENTNAV
()?
.
present
(
alert
,
animated
:
true
,
completion
:
nil
)
// 1 秒后关闭弹窗
DispatchQueue
.
main
.
asyncAfter
(
deadline
:
.
now
()
+
1
)
{
alert
.
dismiss
(
animated
:
true
)
{
}
}
}
}
}
}
...
@@ -606,9 +617,14 @@ extension ADManager{
...
@@ -606,9 +617,14 @@ extension ADManager{
}
}
func
dealConfigShowAD
(
_
type
:
ADTypeEnum
)
->
Bool
{
let
totalShow
=
adConfigModel
?
.
showAd
??
true
let
adShow
=
type
==
.
inter
?
(
adConfigModel
?
.
showInter
??
true
)
:
(
adConfigModel
?
.
showReward
??
true
)
return
(
totalShow
&&
adShow
)
}
func
dealVersionShowAD
()
->
Bool
{
func
dealVersionShowAD
()
->
Bool
{
let
currentVersion
=
Bundle
.
main
.
infoDictionary
?[
"CFBundleShortVersionString"
]
as?
String
??
"2.2.0"
let
currentVersion
=
Bundle
.
main
.
infoDictionary
?[
"CFBundleShortVersionString"
]
as?
String
??
"2.2.2"
// let onlineVersion = "1.1.0"
// 将版本号按点号分割成数组
// 将版本号按点号分割成数组
let
currentComponents
=
currentVersion
.
components
(
separatedBy
:
"."
)
let
currentComponents
=
currentVersion
.
components
(
separatedBy
:
"."
)
...
@@ -630,3 +646,31 @@ extension ADManager{
...
@@ -630,3 +646,31 @@ extension ADManager{
return
true
// 版本相同
return
true
// 版本相同
}
}
}
}
extension
ADManager
{
func
getADConfig
(){
HttpRequest
.
getFormData
(
to
:
ADManager
.
ADConfigUrl
)
{
(
result
:
Result
<
ADConfigModel
,
Error
>
)
in
switch
result
{
case
.
success
(
let
ad
):
print
(
"adconfig:
\(
ad
)
"
)
ADManager
.
shared
.
adConfigModel
=
ad
self
.
loadAD
()
case
.
failure
(
let
error
):
print
(
"Error:
\(
error
)
"
)
self
.
loadAD
()
}
}
}
func
loadAD
(){
Task
{
// 同时load两个广告内容
await
self
.
loadInterstitial
()
await
self
.
loadRewardedInterstitialAd
()
}
}
}
PhoneManager/Class/Manager/ADManager/ADModel.swift
View file @
ea443558
...
@@ -7,6 +7,18 @@
...
@@ -7,6 +7,18 @@
import
Foundation
import
Foundation
struct
ADConfigModel
:
Codable
{
var
showAd
:
Bool
?
var
showReward
:
Bool
?
var
showInter
:
Bool
?
var
rewardID
:
String
?
var
interID
:
String
?
}
enum
ADTypeEnum
{
case
reward
,
inter
}
enum
ADShowError
{
enum
ADShowError
{
case
limit
case
limit
...
...
PhoneManager/Class/Manager/APIReport/DeviceIDManager.swift
View file @
ea443558
...
@@ -10,10 +10,9 @@ class DeviceIDManager {
...
@@ -10,10 +10,9 @@ class DeviceIDManager {
var
deviceID
:
String
{
var
deviceID
:
String
{
// 尝试从 Keychain 获取已存储的 UUID
// 尝试从 Keychain 获取已存储的 UUID
if
let
savedID
=
keychain
.
get
(
deviceIDKey
)
{
if
let
savedID
=
keychain
.
get
(
deviceIDKey
)
,
savedID
.
count
>
0
{
return
savedID
return
savedID
}
}
// 如果没有存储过,生成新的 UUID 并保存
// 如果没有存储过,生成新的 UUID 并保存
let
newID
=
UUID
()
.
uuidString
let
newID
=
UUID
()
.
uuidString
keychain
.
set
(
newID
,
forKey
:
deviceIDKey
)
keychain
.
set
(
newID
,
forKey
:
deviceIDKey
)
...
@@ -33,4 +32,4 @@ extension Dictionary where Key == String {
...
@@ -33,4 +32,4 @@ extension Dictionary where Key == String {
}
}
return
nil
return
nil
}
}
}
}
\ No newline at end of file
PhoneManager/Class/Manager/Request/HttpRequest.swift
View file @
ea443558
...
@@ -17,7 +17,6 @@ struct HttpRequest{
...
@@ -17,7 +17,6 @@ struct HttpRequest{
return
return
}
}
// 创建 URL 请求
// 创建 URL 请求
guard
let
url
=
urlComponents
.
url
else
{
guard
let
url
=
urlComponents
.
url
else
{
completion
(
.
failure
(
NSError
(
domain
:
"Invalid URL Components"
,
code
:
102
,
userInfo
:
nil
)))
completion
(
.
failure
(
NSError
(
domain
:
"Invalid URL Components"
,
code
:
102
,
userInfo
:
nil
)))
...
@@ -29,6 +28,7 @@ struct HttpRequest{
...
@@ -29,6 +28,7 @@ struct HttpRequest{
request
.
httpMethod
=
"GET"
request
.
httpMethod
=
"GET"
request
.
setValue
(
"application/json"
,
forHTTPHeaderField
:
"Content-Type"
)
request
.
setValue
(
"application/json"
,
forHTTPHeaderField
:
"Content-Type"
)
print
(
"请求地址"
,
url
.
absoluteString
)
print
(
"请求地址"
,
url
.
absoluteString
)
// 执行网络请求
// 执行网络请求
let
session
=
URLSession
.
shared
let
session
=
URLSession
.
shared
let
task
=
session
.
dataTask
(
with
:
request
)
{
data
,
response
,
error
in
let
task
=
session
.
dataTask
(
with
:
request
)
{
data
,
response
,
error
in
...
@@ -49,23 +49,26 @@ struct HttpRequest{
...
@@ -49,23 +49,26 @@ struct HttpRequest{
}
}
return
return
}
}
// 解析响应(如果有的话)
do
{
do
{
let
model
=
try
JSONDecoder
()
.
decode
(
T
.
self
,
from
:
data
)
// 先解析顶层 ResponseModel
// print("请求数据",model)
let
responseModel
=
try
JSONDecoder
()
.
decode
(
ResponseModel
<
T
>.
self
,
from
:
data
)
DispatchQueue
.
main
.
async
{
// 解析 data 字符串为实际模型
completion
(
.
success
(
model
))
if
let
parsedData
=
responseModel
.
result
.
parsedData
{
}
DispatchQueue
.
main
.
async
{
}
catch
{
completion
(
.
success
(
parsedData
))
print
(
"数据解析失败:
\(
error
.
localizedDescription
)
"
)
}
DispatchQueue
.
main
.
async
{
}
else
{
completion
(
.
failure
(
NSError
(
domain
:
"数据解析失败"
,
code
:
104
,
userInfo
:
nil
)))
DispatchQueue
.
main
.
async
{
}
completion
(
.
failure
(
NSError
(
domain
:
"Failed to parse data string"
,
code
:
104
,
userInfo
:
nil
)))
}
}
}
}
catch
{
print
(
"Decoding error:
\(
error
)
"
)
DispatchQueue
.
main
.
async
{
completion
(
.
failure
(
error
))
}
}
}
}
// 启动任务
task
.
resume
()
task
.
resume
()
}
}
...
...
PhoneManager/Class/Manager/Request/ResponseModel.swift
View file @
ea443558
...
@@ -12,6 +12,15 @@ struct ResponseModel<T: Codable>: Codable {
...
@@ -12,6 +12,15 @@ struct ResponseModel<T: Codable>: Codable {
// 结果模型
// 结果模型
struct
ResultModel
<
T
:
Codable
>
:
Codable
{
struct
ResultModel
<
T
:
Codable
>
:
Codable
{
let
data
:
T
let
data
:
String
?
let
extras
:
String
?
let
extras
:
String
?
}
\ No newline at end of file
// 自定义解码方法,将 data 字符串解析为泛型模型
var
parsedData
:
T
?
{
guard
let
jsonString
=
data
,
let
jsonData
=
jsonString
.
data
(
using
:
.
utf8
)
else
{
return
nil
}
return
try
?
JSONDecoder
()
.
decode
(
T
.
self
,
from
:
jsonData
)
}
}
PhoneManager/Class/Page/Contact/View/Dup/MergeButtonView.swift
View file @
ea443558
...
@@ -60,22 +60,15 @@ class MergeButtonView : UIView {
...
@@ -60,22 +60,15 @@ class MergeButtonView : UIView {
extension
MergeButtonView
{
extension
MergeButtonView
{
@objc
func
merge
(){
@objc
func
merge
(){
self
.
alertWhenMergeContact
()
//
self.alertWhenMergeContact()
if
IAPManager
.
share
.
isSubscribed
==
false
{
if
IAPManager
.
share
.
isSubscribed
==
false
{
// 添加的时候需要先弹出广告
// 添加的时候需要先弹出广告
// if let vc = self.responderViewController() {
// AdvManager.shared.showInterstitialAd(vc: vc,from:"merge",needAlert: true)
// AdvManager.shared.finisedCallBack = {
// self.alertWhenMergeContact()
// }
// }else {
// self.alertWhenMergeContact()
// }
ADManager
.
shared
.
showRewardedInterstitialAd
(
from
:
ADShowTypeEnum
.
Merge
.
name
)
{[
weak
self
]
in
ADManager
.
shared
.
showRewardedInterstitialAd
(
from
:
ADShowTypeEnum
.
Merge
.
name
)
{[
weak
self
]
in
guard
let
weakSelf
=
self
else
{
return
}
guard
let
weakSelf
=
self
else
{
return
}
weakSelf
.
alertWhenMergeContact
()
weakSelf
.
alertWhenMergeContact
()
}
showFailBlock
:
{
_
in
}
showFailBlock
:
{
_
in
ADManager
.
shared
.
showErrMessage
()
self
.
alertWhenMergeContact
()
ADManager
.
shared
.
failShowErrMessage
()
}
}
}
else
{
}
else
{
...
@@ -100,8 +93,9 @@ extension MergeButtonView {
...
@@ -100,8 +93,9 @@ extension MergeButtonView {
func
alertWhenMergeContact
()
{
func
alertWhenMergeContact
()
{
// 删除之前弹出是否需要备份
// 删除之前弹出是否需要备份
let
alertVc
=
ContactBackupAlertView
()
let
alertVc
=
ContactBackupAlertView
()
self
.
responderViewController
()?
.
view
.
showBlur
()
alertVc
.
frame
=
CGRectMake
(
0
,
ScreenH
,
ScreenW
,
ScreenH
)
//(self.responderViewController()?.view.bounds)!
alertVc
.
frame
=
CGRectMake
(
0
,
ScreenH
,
ScreenW
,
ScreenH
)
//(self.responderViewController()?.view.bounds)!
self
.
responderViewController
()?
.
view
.
showBlur
()
self
.
responderViewController
()?
.
view
.
addSubview
(
alertVc
)
self
.
responderViewController
()?
.
view
.
addSubview
(
alertVc
)
UIView
.
animate
(
withDuration
:
AniDuration
)
{
UIView
.
animate
(
withDuration
:
AniDuration
)
{
alertVc
.
frame
=
CGRectMake
(
0
,
0
,
ScreenW
,
ScreenH
)
alertVc
.
frame
=
CGRectMake
(
0
,
0
,
ScreenW
,
ScreenH
)
...
...
PhoneManager/Class/Page/Contact/View/Dup/MergePreButtonView.swift
View file @
ea443558
...
@@ -60,19 +60,11 @@ extension MergePreButtonView {
...
@@ -60,19 +60,11 @@ extension MergePreButtonView {
@objc
func
mergePre
(){
@objc
func
mergePre
(){
if
IAPManager
.
share
.
isSubscribed
==
false
{
if
IAPManager
.
share
.
isSubscribed
==
false
{
// 添加的时候需要先弹出广告
// 添加的时候需要先弹出广告
// if let vc = self.responderViewController() {
// AdvManager.shared.showInterstitialAd(vc: vc,needAlert: true)
// AdvManager.shared.finisedCallBack = {
// self.mergePreCallBack()
// }
// }else {
// self.mergePreCallBack()
// }
ADManager
.
shared
.
showRewardedInterstitialAd
(
from
:
ADShowTypeEnum
.
Merge
.
name
)
{[
weak
self
]
in
ADManager
.
shared
.
showRewardedInterstitialAd
(
from
:
ADShowTypeEnum
.
Merge
.
name
)
{[
weak
self
]
in
guard
let
weakSelf
=
self
else
{
return
}
guard
let
weakSelf
=
self
else
{
return
}
weakSelf
.
mergePreCallBack
()
weakSelf
.
mergePreCallBack
()
}
showFailBlock
:
{
_
in
}
showFailBlock
:
{
_
in
ADManager
.
shared
.
s
howErrMessage
()
ADManager
.
shared
.
failS
howErrMessage
()
}
}
}
else
{
}
else
{
self
.
mergePreCallBack
()
self
.
mergePreCallBack
()
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment