延迟深度链接开发,充值页面排序开发,1.1.2提审
This commit is contained in:
parent
1588233050
commit
6e4051494e
@ -9,6 +9,7 @@ import UIKit
|
||||
#if canImport(FacebookCore)
|
||||
import FacebookCore
|
||||
#endif
|
||||
import AdjustSdk
|
||||
|
||||
|
||||
extension SceneDelegate {
|
||||
@ -24,6 +25,9 @@ extension SceneDelegate {
|
||||
result = ApplicationDelegate.shared.application(UIApplication.shared, open: url, sourceApplication: nil, annotation: [UIApplication.OpenURLOptionsKey.annotation])
|
||||
#endif
|
||||
if !result {
|
||||
if let link = ADJDeeplink(deeplink: url) {
|
||||
Adjust.processDeeplink(link)
|
||||
}
|
||||
handleOpenAppMessage(webpageURL: url)
|
||||
}
|
||||
|
||||
@ -32,15 +36,19 @@ extension SceneDelegate {
|
||||
///UniversalLink 打开app
|
||||
func scene(_ scene: UIScene, continue userActivity: NSUserActivity) {
|
||||
guard let webpageURL = userActivity.webpageURL else { return }
|
||||
let result = ApplicationDelegate.shared.application(UIApplication.shared, continue: userActivity)
|
||||
|
||||
if !result {
|
||||
handleOpenAppMessage(webpageURL: webpageURL)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
extension SceneDelegate {
|
||||
static var hasOpenMessage = false
|
||||
///是否允许打开消息(每次打开APP只允许打开一次消息)
|
||||
static var allowOpenMessage = true
|
||||
///是否需要重试
|
||||
static var isNeedRetry = false
|
||||
|
||||
@ -48,7 +56,7 @@ extension SceneDelegate {
|
||||
|
||||
func handleOpenAppMessage(webpageURL: URL?) {
|
||||
guard SPNetworkReachabilityManager.manager.isReachable == true,
|
||||
AppDelegate.haveBeenShownAPNS,
|
||||
// AppDelegate.haveBeenShownAPNS,
|
||||
SPAPPTool.isAppOpen,
|
||||
SPAPPTool.idfaAuthorizationFinish //idfa授权完成
|
||||
else {
|
||||
@ -74,21 +82,15 @@ extension SceneDelegate {
|
||||
}
|
||||
|
||||
private func _handleOpenAppMessage(webpageURL: URL?) {
|
||||
if !SPAPPTool.isAppOpen { return }
|
||||
|
||||
if Self.hasOpenMessage { return }
|
||||
DispatchQueue.main.asyncAfter(deadline: .now() + 3) {
|
||||
Self.hasOpenMessage = false
|
||||
}
|
||||
|
||||
Self.hasOpenMessage = true
|
||||
guard SceneDelegate.allowOpenMessage else { return }
|
||||
SceneDelegate.allowOpenMessage = false
|
||||
|
||||
//统计用URL
|
||||
var statUrlStr: String?
|
||||
var data: [String : Any]?
|
||||
var statUrlStr: String? = webpageURL?.absoluteString
|
||||
var data: [String : Any]? = webpageURL?.query?.urlQuryToDictionary()
|
||||
|
||||
if let pasteStr = UIPasteboard.general.string, pasteStr.contains("movia") {
|
||||
UIPasteboard.general.string = nil
|
||||
if statUrlStr == nil, let pasteStr = UIPasteboard.general.string, pasteStr.contains("movia") {
|
||||
let tempArr = pasteStr.components(separatedBy: "?")
|
||||
let query = tempArr.last
|
||||
|
||||
@ -98,13 +100,7 @@ extension SceneDelegate {
|
||||
statUrlStr = pasteStr
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
if data == nil {
|
||||
data = webpageURL?.query?.urlQuryToDictionary()
|
||||
statUrlStr = webpageURL?.absoluteString
|
||||
}
|
||||
UIPasteboard.general.string = nil
|
||||
|
||||
if let urlStr = statUrlStr {//上报结果
|
||||
SPStatAPI.requestStatW2a(data: urlStr)
|
||||
|
@ -22,12 +22,32 @@ extension AppDelegate {
|
||||
registAdjust()
|
||||
///设置刷新控件的语言
|
||||
MJRefreshConfig.default.languageCode = SPLocalizedManager.shared.mjLocalizedKey
|
||||
|
||||
AppLinkUtility.fetchDeferredAppLink { url, error in
|
||||
if let url = url, error != nil {
|
||||
SPAPPTool.sceneDelegate?.handleOpenAppMessage(webpageURL: url)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private func registAdjust() {
|
||||
#if DEBUG
|
||||
let config = ADJConfig(appToken: "7z38v0rvceww", environment: ADJEnvironmentSandbox)
|
||||
config?.logLevel = .verbose
|
||||
#else
|
||||
let config = ADJConfig(appToken: "7z38v0rvceww", environment: ADJEnvironmentProduction)
|
||||
#endif
|
||||
|
||||
config?.delegate = self
|
||||
Adjust.initSdk(config)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//MARK: -------------- AdjustDelegate --------------
|
||||
extension AppDelegate: AdjustDelegate {
|
||||
func adjustDeferredDeeplinkReceived(_ deeplink: URL?) -> Bool {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
@ -76,6 +76,7 @@ class SceneDelegate: UIResponder, UIWindowSceneDelegate {
|
||||
// Called as the scene transitions from the foreground to the background.
|
||||
// Use this method to save data, release shared resources, and store enough scene-specific state information
|
||||
// to restore the scene back to its current state.
|
||||
SceneDelegate.allowOpenMessage = true
|
||||
}
|
||||
|
||||
|
||||
|
@ -84,7 +84,6 @@ extension SPApi: TargetType {
|
||||
"lang-key" : SPLocalizedManager.shared.currentLocalizedKey,//当前语言
|
||||
"time-zone" : String.timeZone(), //时区
|
||||
"app-version" : kSPAPPVersion,
|
||||
// "device-id" : JXUUID.systemUUID(), //设备id
|
||||
"device-id" : JXUUID.uuid(), //设备id
|
||||
"brand" : "apple", //品牌
|
||||
"app-name" : kSPAPPBundleIdentifier,
|
||||
|
@ -62,7 +62,8 @@ class SPWebView: WKWebView {
|
||||
|
||||
func load(urlStr: String) {
|
||||
guard let url = URL(string: urlStr) else { return }
|
||||
var request = URLRequest(url: url, cachePolicy: .reloadIgnoringLocalCacheData, timeoutInterval: 30)
|
||||
// var request = URLRequest(url: url, cachePolicy: .reloadIgnoringLocalCacheData, timeoutInterval: 30)
|
||||
var request = URLRequest(url: url, cachePolicy: .returnCacheDataElseLoad, timeoutInterval: 30)
|
||||
self.load(request)
|
||||
}
|
||||
|
||||
|
@ -250,15 +250,17 @@ extension SPPlayBuyView {
|
||||
guard let self = self else { return }
|
||||
self.stackView.removeAllArrangedSubview()
|
||||
|
||||
|
||||
if let list = templateModel?.list_sub_vip, list.count > 0 {
|
||||
self.memberView.setDataArr(dataArr: templateModel?.list_sub_vip)
|
||||
self.stackView.addArrangedSubview(self.memberView)
|
||||
if let sort = templateModel?.sort, sort.count > 0 {
|
||||
sort.forEach {
|
||||
if $0 == .vip {
|
||||
self.addMemberView(list: templateModel?.list_sub_vip)
|
||||
} else if $0 == .coin {
|
||||
self.addCoinView(list: templateModel?.list_coins)
|
||||
}
|
||||
|
||||
if let list = templateModel?.list_coins, list.count > 0 {
|
||||
self.rechargeView.dataArr = templateModel?.list_coins
|
||||
self.stackView.addArrangedSubview(self.rechargeView)
|
||||
}
|
||||
} else {
|
||||
self.addMemberView(list: templateModel?.list_sub_vip)
|
||||
self.addCoinView(list: templateModel?.list_coins)
|
||||
}
|
||||
|
||||
DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
|
||||
@ -268,5 +270,20 @@ extension SPPlayBuyView {
|
||||
}
|
||||
}
|
||||
|
||||
private func addMemberView(list: [SPPayTemplateItem]?) {
|
||||
if let list = list, list.count > 0 {
|
||||
self.memberView.setDataArr(dataArr: list)
|
||||
self.stackView.addArrangedSubview(self.memberView)
|
||||
}
|
||||
}
|
||||
|
||||
private func addCoinView(list: [SPPayTemplateItem]?) {
|
||||
if let list = list, list.count > 0 {
|
||||
self.rechargeView.dataArr = list
|
||||
self.stackView.addArrangedSubview(self.rechargeView)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
@ -188,19 +188,34 @@ extension SPStoreViewController {
|
||||
guard let self = self else { return }
|
||||
self.stackView.removeAllArrangedSubview()
|
||||
|
||||
if let list = templateModel?.list_sub_vip, list.count > 0 {
|
||||
self.memberView.setDataArr(dataArr: templateModel?.list_sub_vip)
|
||||
if let sort = templateModel?.sort, sort.count > 0 {
|
||||
sort.forEach {
|
||||
if $0 == .vip {
|
||||
self.addMemberView(list: templateModel?.list_sub_vip)
|
||||
} else if $0 == .coin {
|
||||
self.addCoinView(list: templateModel?.list_coins)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
self.addMemberView(list: templateModel?.list_sub_vip)
|
||||
self.addCoinView(list: templateModel?.list_coins)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private func addMemberView(list: [SPPayTemplateItem]?) {
|
||||
if let list = list, list.count > 0 {
|
||||
self.memberView.setDataArr(dataArr: list)
|
||||
self.stackView.addArrangedSubview(self.memberView)
|
||||
}
|
||||
}
|
||||
|
||||
if let list = templateModel?.list_coins, list.count > 0 {
|
||||
self.rechargeView.dataArr = templateModel?.list_coins
|
||||
private func addCoinView(list: [SPPayTemplateItem]?) {
|
||||
if let list = list, list.count > 0 {
|
||||
self.rechargeView.dataArr = list
|
||||
self.stackView.addArrangedSubview(self.rechargeView)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
@ -10,6 +10,13 @@ import SmartCodable
|
||||
|
||||
class SPPayTemplateModel: SPModel, SmartCodable {
|
||||
|
||||
enum SortName: String, SmartCaseDefaultable {
|
||||
case coin = "list_coins"
|
||||
case vip = "list_sub_vip"
|
||||
}
|
||||
|
||||
var list_coins: [SPPayTemplateItem]?
|
||||
var list_sub_vip: [SPPayTemplateItem]?
|
||||
|
||||
var sort: [SortName]?
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user