mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-19 14:57:32 +09:00
Dactyloidae iOS initial commit
This commit is contained in:
parent
daa6179d22
commit
7154a0497e
2123 changed files with 197052 additions and 0 deletions
193
mobile/ios/ThirdParty/Leanplum/Leanplum.framework/Headers/LPInbox.h
vendored
Normal file
193
mobile/ios/ThirdParty/Leanplum/Leanplum.framework/Headers/LPInbox.h
vendored
Normal file
|
|
@ -0,0 +1,193 @@
|
|||
//
|
||||
// LPInbox.h
|
||||
// Leanplum
|
||||
//
|
||||
// Created by Aleksandar Gyorev on 05/08/15.
|
||||
// Copyright (c) 2015 Leanplum, Inc. All rights reserved.
|
||||
//
|
||||
// Licensed to the Apache Software Foundation (ASF) under one
|
||||
// or more contributor license agreements. See the NOTICE file
|
||||
// distributed with this work for additional information
|
||||
// regarding copyright ownership. The ASF licenses this file
|
||||
// to you under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing,
|
||||
// software distributed under the License is distributed on an
|
||||
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
// KIND, either express or implied. See the License for the
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
|
||||
#pragma mark - LPInboxMessage interface
|
||||
|
||||
@interface LPInboxMessage : NSObject <NSCoding>
|
||||
|
||||
#pragma mark - LPInboxMessage methods
|
||||
|
||||
/**
|
||||
* Returns the message identifier of the inbox message.
|
||||
*/
|
||||
- (NSString *)messageId;
|
||||
|
||||
/**
|
||||
* Returns the title of the inbox message.
|
||||
*/
|
||||
- (NSString *)title;
|
||||
|
||||
/**
|
||||
* Returns the subtitle of the inbox message.
|
||||
*/
|
||||
- (NSString *)subtitle;
|
||||
|
||||
/**
|
||||
* Returns the image path of the inbox message. Can be nil.
|
||||
* Use with [UIImage contentsOfFile:].
|
||||
*/
|
||||
- (NSString *)imageFilePath;
|
||||
|
||||
/**
|
||||
* Returns the image URL of the inbox message.
|
||||
* You can safely use this with prefetching enabled.
|
||||
* It will return the file URL path instead if the image is in cache.
|
||||
*/
|
||||
- (NSURL *)imageURL;
|
||||
|
||||
/**
|
||||
* Returns the data of the inbox message. Advanced use only.
|
||||
*/
|
||||
- (NSDictionary *)data;
|
||||
|
||||
/**
|
||||
* Returns the delivery timestamp of the inbox message.
|
||||
*/
|
||||
- (NSDate *)deliveryTimestamp;
|
||||
|
||||
/**
|
||||
* Return the expiration timestamp of the inbox message.
|
||||
*/
|
||||
- (NSDate *)expirationTimestamp;
|
||||
|
||||
/**
|
||||
* Returns YES if the inbox message is read.
|
||||
*/
|
||||
- (BOOL)isRead;
|
||||
|
||||
/**
|
||||
* Read the inbox message, marking it as read and invoking its open action.
|
||||
*/
|
||||
- (void)read;
|
||||
|
||||
/**
|
||||
* Remove the inbox message from the inbox.
|
||||
*/
|
||||
- (void)remove;
|
||||
|
||||
@end
|
||||
|
||||
#pragma mark - LPInbox interface
|
||||
|
||||
/**
|
||||
* This block is used when you define a callback.
|
||||
*/
|
||||
typedef void (^LeanplumInboxChangedBlock)(void);
|
||||
typedef void (^LeanplumInboxSyncedBlock)(BOOL success);
|
||||
|
||||
@interface LPInbox : NSObject
|
||||
|
||||
#pragma mark - LPInbox methods
|
||||
|
||||
/**
|
||||
* Returns the number of all inbox messages on the device.
|
||||
*/
|
||||
- (NSUInteger)count;
|
||||
|
||||
/**
|
||||
* Returns the number of the unread inbox messages on the device.
|
||||
*/
|
||||
- (NSUInteger)unreadCount;
|
||||
|
||||
/**
|
||||
* Returns the identifiers of all inbox messages on the device sorted in ascending
|
||||
* chronological order, i.e. the id of the oldest message is the first one, and the most
|
||||
* recent one is the last one in the array.
|
||||
*/
|
||||
- (NSArray *)messagesIds;
|
||||
|
||||
/**
|
||||
* Returns an array containing all of the inbox messages (as LPInboxMessage objects)
|
||||
* on the device, sorted in ascending chronological order, i.e. the oldest message is the
|
||||
* first one, and the most recent one is the last one in the array.
|
||||
*/
|
||||
- (NSArray *)allMessages;
|
||||
|
||||
/**
|
||||
* Returns an array containing all of the unread inbox messages on the device, sorted
|
||||
* in ascending chronological order, i.e. the oldest message is the first one, and the
|
||||
* most recent one is the last one in the array.
|
||||
*/
|
||||
- (NSArray *)unreadMessages;
|
||||
|
||||
/**
|
||||
* Returns the inbox messages associated with the given messageId identifier.
|
||||
*/
|
||||
- (LPInboxMessage *)messageForId:(NSString *)messageId;
|
||||
|
||||
/**
|
||||
* Call this method if you don't want Inbox images to be prefetched.
|
||||
* Useful if you only want to deal with image URL.
|
||||
*/
|
||||
- (void)disableImagePrefetching;
|
||||
|
||||
/**
|
||||
* Block to call when the inbox receive new values from the server.
|
||||
* This will be called on start, and also later on if the user is in an experiment
|
||||
* that can update in realtime.
|
||||
*/
|
||||
- (void)onChanged:(LeanplumInboxChangedBlock)block;
|
||||
|
||||
/**
|
||||
* Block to call when forceContentUpdate was called.
|
||||
* Returns true if syncing was successful.
|
||||
* Note: use onChanged: for UI.
|
||||
*/
|
||||
- (void)onForceContentUpdate:(LeanplumInboxSyncedBlock)block;
|
||||
|
||||
/**
|
||||
@{
|
||||
* Adds a responder to be executed when an event happens.
|
||||
* Uses NSInvocation instead of blocks.
|
||||
* @see [Leanplum onStartResponse:]
|
||||
*/
|
||||
- (void)addInboxChangedResponder:(id)responder withSelector:(SEL)selector;
|
||||
- (void)removeInboxChangedResponder:(id)responder withSelector:(SEL)selector;
|
||||
/**@}*/
|
||||
|
||||
@end
|
||||
|
||||
#pragma mark - LPNewsfeed for backwards compatibility
|
||||
@interface LPNewsfeedMessage : LPInboxMessage
|
||||
|
||||
@end
|
||||
|
||||
typedef void (^LeanplumNewsfeedChangedBlock)(void);
|
||||
|
||||
@interface LPNewsfeed : NSObject
|
||||
|
||||
+ (LPNewsfeed *)sharedState;
|
||||
- (NSUInteger)count;
|
||||
- (NSUInteger)unreadCount;
|
||||
- (NSArray *)messagesIds;
|
||||
- (NSArray *)allMessages;
|
||||
- (NSArray *)unreadMessages;
|
||||
- (void)onChanged:(LeanplumNewsfeedChangedBlock)block;
|
||||
- (LPNewsfeedMessage *)messageForId:(NSString *)messageId;
|
||||
- (void)addNewsfeedChangedResponder:(id)responder withSelector:(SEL)selector __attribute__((deprecated));
|
||||
- (void)removeNewsfeedChangedResponder:(id)responder withSelector:(SEL)selector __attribute__((deprecated));
|
||||
|
||||
@end
|
||||
929
mobile/ios/ThirdParty/Leanplum/Leanplum.framework/Headers/Leanplum.h
vendored
Normal file
929
mobile/ios/ThirdParty/Leanplum/Leanplum.framework/Headers/Leanplum.h
vendored
Normal file
|
|
@ -0,0 +1,929 @@
|
|||
//
|
||||
// Leanplum.h
|
||||
// Leanplum iOS SDK Version 2.0.4
|
||||
//
|
||||
// Copyright (c) 2012 Leanplum, Inc. All rights reserved.
|
||||
//
|
||||
// Licensed to the Apache Software Foundation (ASF) under one
|
||||
// or more contributor license agreements. See the NOTICE file
|
||||
// distributed with this work for additional information
|
||||
// regarding copyright ownership. The ASF licenses this file
|
||||
// to you under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing,
|
||||
// software distributed under the License is distributed on an
|
||||
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
// KIND, either express or implied. See the License for the
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "LPInbox.h"
|
||||
|
||||
#ifndef LP_NOT_TV
|
||||
#define LP_NOT_TV (!defined(TARGET_OS_TV) || !TARGET_OS_TV)
|
||||
#endif
|
||||
|
||||
#define _LP_DEFINE_HELPER(name,val,type) LPVar* name; \
|
||||
static void __attribute__((constructor)) initialize_##name() { \
|
||||
@autoreleasepool { \
|
||||
name = [LPVar define:[@#name stringByReplacingOccurrencesOfString:@"_" withString:@"."] with##type:val]; \
|
||||
} \
|
||||
}
|
||||
|
||||
/**
|
||||
* @defgroup Macros Variable Macros
|
||||
* Use these macros to define variables inside your app.
|
||||
* Underscores within variable names will nest variables within groups.
|
||||
* To define variables in a more custom way, copy and modify
|
||||
* the template above in your own code.
|
||||
* @see LPVar
|
||||
* @{
|
||||
*/
|
||||
#define DEFINE_VAR_INT(name,val) _LP_DEFINE_HELPER(name, val, Int)
|
||||
#define DEFINE_VAR_BOOL(name,val) _LP_DEFINE_HELPER(name, val, Bool)
|
||||
#define DEFINE_VAR_STRING(name,val) _LP_DEFINE_HELPER(name, val, String)
|
||||
#define DEFINE_VAR_NUMBER(name,val) _LP_DEFINE_HELPER(name, val, Number)
|
||||
#define DEFINE_VAR_FLOAT(name,val) _LP_DEFINE_HELPER(name, val, Float)
|
||||
#define DEFINE_VAR_CGFLOAT(name,val) _LP_DEFINE_HELPER(name, val, CGFloat)
|
||||
#define DEFINE_VAR_DOUBLE(name,val) _LP_DEFINE_HELPER(name, val, Double)
|
||||
#define DEFINE_VAR_SHORT(name,val) _LP_DEFINE_HELPER(name, val, Short)
|
||||
#define DEFINE_VAR_LONG(name,val) _LP_DEFINE_HELPER(name, val, Long)
|
||||
#define DEFINE_VAR_CHAR(name,val) _LP_DEFINE_HELPER(name, val, Char)
|
||||
#define DEFINE_VAR_LONG_LONG(name,val) _LP_DEFINE_HELPER(name, val, LongLong)
|
||||
#define DEFINE_VAR_INTEGER(name,val) _LP_DEFINE_HELPER(name, val, Integer)
|
||||
#define DEFINE_VAR_UINT(name,val) _LP_DEFINE_HELPER(name, val, UnsignedInt)
|
||||
#define DEFINE_VAR_UCHAR(name,val) _LP_DEFINE_HELPER(name, val, UnsignedChar)
|
||||
#define DEFINE_VAR_ULONG(name,val) _LP_DEFINE_HELPER(name, val, UnsignedLong)
|
||||
#define DEFINE_VAR_UINTEGER(name,val) _LP_DEFINE_HELPER(name, val, UnsignedInteger)
|
||||
#define DEFINE_VAR_USHORT(name,val) _LP_DEFINE_HELPER(name, val, UnsignedShort)
|
||||
#define DEFINE_VAR_ULONGLONG(name,val) _LP_DEFINE_HELPER(name, val, UnsignedLongLong)
|
||||
#define DEFINE_VAR_UNSIGNED_INT(name,val) _LP_DEFINE_HELPER(name, val, UnsignedInt)
|
||||
#define DEFINE_VAR_UNSIGNED_INTEGER(name,val) _LP_DEFINE_HELPER(name, val, UnsignedInteger)
|
||||
#define DEFINE_VAR_UNSIGNED_CHAR(name,val) _LP_DEFINE_HELPER(name, val, UnsignedChar)
|
||||
#define DEFINE_VAR_UNSIGNED_LONG(name,val) _LP_DEFINE_HELPER(name, val, UnsignedLong)
|
||||
#define DEFINE_VAR_UNSIGNED_LONG_LONG(name,val) _LP_DEFINE_HELPER(name, val, UnsignedLongLong)
|
||||
#define DEFINE_VAR_UNSIGNED_SHORT(name,val) _LP_DEFINE_HELPER(name, val, UnsignedShort)
|
||||
#define DEFINE_VAR_FILE(name,filename) _LP_DEFINE_HELPER(name, filename, File)
|
||||
#define DEFINE_VAR_DICTIONARY(name,dict) _LP_DEFINE_HELPER(name, dict, Dictionary)
|
||||
#define DEFINE_VAR_ARRAY(name,array) _LP_DEFINE_HELPER(name, array, Array)
|
||||
#define DEFINE_VAR_COLOR(name,val) _LP_DEFINE_HELPER(name, val, Color)
|
||||
|
||||
#define DEFINE_VAR_DICTIONARY_WITH_OBJECTS_AND_KEYS(name,...) LPVar* name; \
|
||||
static void __attribute__((constructor)) initialize_##name() { \
|
||||
@autoreleasepool { \
|
||||
name = [LPVar define:[@#name stringByReplacingOccurrencesOfString:@"_" withString:@"."] withDictionary:[NSDictionary dictionaryWithObjectsAndKeys:__VA_ARGS__]]; \
|
||||
} \
|
||||
}
|
||||
|
||||
#define DEFINE_VAR_ARRAY_WITH_OBJECTS(name,...) LPVar* name; \
|
||||
static void __attribute__((constructor)) initialize_##name() { \
|
||||
@autoreleasepool { \
|
||||
name = [LPVar define:[@#name stringByReplacingOccurrencesOfString:@"_" withString:@"."] withArray:[NSArray arrayWithObjects:__VA_ARGS__]]; \
|
||||
} \
|
||||
}
|
||||
/**@}*/
|
||||
|
||||
/**
|
||||
* Use this code in development mode (or in production), to use the advertising ID.
|
||||
* It's useful in development mode so that we remember your device even if you reinstall your app.
|
||||
* Since it's a MACRO, this won't get compiled into your app in production, and will be safe
|
||||
* to submit to Apple.
|
||||
*/
|
||||
#define LEANPLUM_USE_ADVERTISING_ID \
|
||||
_Pragma("clang diagnostic push") \
|
||||
_Pragma("clang diagnostic ignored \"-Warc-performSelector-leaks\"") \
|
||||
id LeanplumIdentifierManager = [NSClassFromString(@"ASIdentifierManager") \
|
||||
performSelector:NSSelectorFromString(@"sharedManager")]; \
|
||||
if (floor(NSFoundationVersionNumber) <= 1299 /* NSFoundationVersionNumber_iOS_9_x_Max */ || \
|
||||
[LeanplumIdentifierManager performSelector: \
|
||||
NSSelectorFromString(@"isAdvertisingTrackingEnabled")]) { \
|
||||
/* < iOS10 || isAdvertisingTrackingEnabled */ \
|
||||
[Leanplum setDeviceId:[[LeanplumIdentifierManager performSelector: \
|
||||
NSSelectorFromString(@"advertisingIdentifier")] \
|
||||
performSelector:NSSelectorFromString(@"UUIDString")]]; \
|
||||
} \
|
||||
_Pragma("clang diagnostic pop")
|
||||
|
||||
@class LPActionContext;
|
||||
@class SKPaymentTransaction;
|
||||
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 80000
|
||||
@class NSExtensionContext;
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @defgroup _ Callback Blocks
|
||||
* Those blocks are used when you define callbacks.
|
||||
* @{
|
||||
*/
|
||||
typedef void (^LeanplumStartBlock)(BOOL success);
|
||||
typedef void (^LeanplumVariablesChangedBlock)(void);
|
||||
typedef void (^LeanplumInterfaceChangedBlock)(void);
|
||||
typedef void (^LeanplumSetLocationBlock)(BOOL success);
|
||||
// Returns whether the action was handled.
|
||||
typedef BOOL (^LeanplumActionBlock)(LPActionContext* context);
|
||||
typedef void (^LeanplumHandleNotificationBlock)(void);
|
||||
typedef void (^LeanplumShouldHandleNotificationBlock)(NSDictionary *userInfo, LeanplumHandleNotificationBlock response);
|
||||
typedef NSUInteger LeanplumUIBackgroundFetchResult; // UIBackgroundFetchResult
|
||||
typedef void (^LeanplumFetchCompletionBlock)(LeanplumUIBackgroundFetchResult result);
|
||||
typedef void (^LeanplumPushSetupBlock)(void);
|
||||
/**@}*/
|
||||
|
||||
/**
|
||||
* Leanplum Action Kind Message types
|
||||
* This is a bit-field. To choose both kinds, use
|
||||
* kLeanplumActionKindMessage | kLeanplumActionKindAction
|
||||
*/
|
||||
typedef enum {
|
||||
kLeanplumActionKindMessage = 0b1,
|
||||
kLeanplumActionKindAction = 0b10,
|
||||
} LeanplumActionKind;
|
||||
|
||||
#define LP_PURCHASE_EVENT @"Purchase"
|
||||
|
||||
@interface Leanplum : NSObject
|
||||
|
||||
/**
|
||||
* Optional. Sets the API server. The API path is of the form http[s]://hostname/servletName
|
||||
* @param hostName The name of the API host, such as api.leanplum.com
|
||||
* @param servletName The name of the API servlet, such as api
|
||||
* @param ssl Whether to use SSL
|
||||
*/
|
||||
+ (void)setApiHostName:(NSString *)hostName withServletName:(NSString *)servletName usingSsl:(BOOL)ssl;
|
||||
|
||||
/**
|
||||
* Optional. Adjusts the network timeouts.
|
||||
* The default timeout is 10 seconds for requests, and 15 seconds for file downloads.
|
||||
* @{
|
||||
*/
|
||||
+ (void)setNetworkTimeoutSeconds:(int)seconds;
|
||||
+ (void)setNetworkTimeoutSeconds:(int)seconds forDownloads:(int)downloadSeconds;
|
||||
/**@}*/
|
||||
|
||||
/**
|
||||
* Sets whether to show the network activity indicator in the status bar when making requests.
|
||||
* Default: YES.
|
||||
*/
|
||||
+ (void)setNetworkActivityIndicatorEnabled:(BOOL)enabled;
|
||||
|
||||
/**
|
||||
* Advanced: Whether new variables can be downloaded mid-session. By default, this is disabled.
|
||||
* Currently, if this is enabled, new variables can only be downloaded if a push notification is sent
|
||||
* while the app is running, and the notification's metadata hasn't be downloaded yet.
|
||||
*/
|
||||
+ (void)setCanDownloadContentMidSessionInProductionMode:(BOOL)value;
|
||||
|
||||
/**
|
||||
* Modifies the file hashing setting in development mode.
|
||||
* By default, Leanplum will hash file variables to determine if they're modified and need
|
||||
* to be uploaded to the server if we're running in the simulator.
|
||||
* Setting this to NO will reduce startup latency in development mode, but it's possible
|
||||
* that Leanplum will not always have the most up-to-date versions of your resources.
|
||||
*/
|
||||
+ (void)setFileHashingEnabledInDevelopmentMode:(BOOL)enabled;
|
||||
|
||||
/**
|
||||
* Sets whether to enable verbose logging in development mode. Default: NO.
|
||||
*/
|
||||
+ (void)setVerboseLoggingInDevelopmentMode:(BOOL)enabled;
|
||||
|
||||
/**
|
||||
* Sets a custom event name for in-app purchase tracking. Default: Purchase.
|
||||
*/
|
||||
+ (void)setInAppPurchaseEventName:(NSString *)event;
|
||||
|
||||
/**
|
||||
* @{
|
||||
* Must call either this or {@link setAppId:withProductionKey:}
|
||||
* before issuing any calls to the API, including start.
|
||||
* @param appId Your app ID.
|
||||
* @param accessKey Your development key.
|
||||
*/
|
||||
+ (void)setAppId:(NSString *)appId withDevelopmentKey:(NSString *)accessKey;
|
||||
|
||||
/**
|
||||
* Must call either this or {@link Leanplum::setAppId:withDevelopmentKey:}
|
||||
* before issuing any calls to the API, including start.
|
||||
* @param appId Your app ID.
|
||||
* @param accessKey Your production key.
|
||||
*/
|
||||
+ (void)setAppId:(NSString *)appId withProductionKey:(NSString *)accessKey;
|
||||
/**@}*/
|
||||
|
||||
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 80000
|
||||
/**
|
||||
* Apps running as extensions need to call this before start.
|
||||
* @param context The current extensionContext. You can get this from UIViewController.
|
||||
*/
|
||||
+ (void)setExtensionContext:(NSExtensionContext *)context;
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @{
|
||||
* Call this before start to allow your interfaces to change on the fly.
|
||||
* Needed in development mode to enable the interface editor, as well as in production to allow
|
||||
* changes to be applied.
|
||||
*/
|
||||
+ (void)allowInterfaceEditing __attribute__((deprecated("Use LeanplumUIEditor pod instead.")));
|
||||
|
||||
/**
|
||||
* Check if interface editing is enabled.
|
||||
*/
|
||||
+ (BOOL)interfaceEditingEnabled __attribute__((deprecated("Use LeanplumUIEditor pod instead.")));
|
||||
|
||||
/**@}*/
|
||||
|
||||
/**
|
||||
* Sets a custom device ID. For example, you may want to pass the advertising ID to do attribution.
|
||||
* By default, the device ID is the identifier for vendor.
|
||||
*/
|
||||
+ (void)setDeviceId:(NSString *)deviceId;
|
||||
|
||||
/**
|
||||
* By default, Leanplum reports the version of your app using CFBundleVersion, which
|
||||
* can be used for reporting and targeting on the Leanplum dashboard.
|
||||
* If you wish to use CFBundleShortVersionString or any other string as the version,
|
||||
* you can call this before your call to [Leanplum start]
|
||||
*/
|
||||
+ (void)setAppVersion:(NSString *)appVersion;
|
||||
|
||||
/**
|
||||
* @{
|
||||
* Syncs resources between Leanplum and the current app.
|
||||
* You should only call this once, and before {@link start}.
|
||||
* Deprecated. Use {@link syncResourcesAsync:} instead.
|
||||
*/
|
||||
+ (void)syncResources __attribute__((deprecated));
|
||||
|
||||
/**
|
||||
* Syncs resources between Leanplum and the current app.
|
||||
* You should only call this once, and before {@link start}.
|
||||
* @param async Whether the call should be asynchronous. Resource syncing can take 1-2 seconds to
|
||||
* index the app's resources. If async is set, resources may not be available immediately
|
||||
* when the app starts.
|
||||
*/
|
||||
+ (void)syncResourcesAsync:(BOOL)async;
|
||||
|
||||
/**
|
||||
* Syncs resources between Leanplum and the current app.
|
||||
* You should only call this once, and before {@link start}.
|
||||
* Deprecated. Use {@link syncResourcePaths:excluding:async} instead.
|
||||
* @param async Whether the call should be asynchronous. Resource syncing can take 1-2 seconds to
|
||||
* index the app's resources. If async is set, resources may not be available immediately
|
||||
* when the app starts.
|
||||
* @param patternsToIncludeOrNil Limit paths to only those matching at least one pattern in this
|
||||
* list. Supply nil to indicate no inclusion patterns. Paths are relative to the app's bundle.
|
||||
* @param patternsToExcludeOrNil Exclude paths matching at least one of these patterns.
|
||||
* Supply nil to indicate no exclusion patterns.
|
||||
*/
|
||||
+ (void)syncResourcePaths:(NSArray *)patternsToIncludeOrNil
|
||||
excluding:(NSArray *)patternsToExcludeOrNil __attribute__((deprecated));
|
||||
|
||||
/**
|
||||
* Syncs resources between Leanplum and the current app.
|
||||
* You should only call this once, and before {@link start}.
|
||||
* @param async Whether the call should be asynchronous. Resource syncing can take 1-2 seconds to
|
||||
* index the app's resources. If async is set, resources may not be available immediately
|
||||
* when the app starts.
|
||||
* @param patternsToIncludeOrNil Limit paths to only those matching at least one pattern in this
|
||||
* list. Supply nil to indicate no inclusion patterns. Paths are relative to the app's bundle.
|
||||
* @param patternsToExcludeOrNil Exclude paths matching at least one of these patterns.
|
||||
* Supply nil to indicate no exclusion patterns.
|
||||
* @param async Whether the call should be asynchronous. Resource syncing can take 1-2 seconds to
|
||||
* index the app's resources. If async is set, resources may not be available immediately
|
||||
* when the app starts.
|
||||
*/
|
||||
+ (void)syncResourcePaths:(NSArray *)patternsToIncludeOrNil
|
||||
excluding:(NSArray *)patternsToExcludeOrNil
|
||||
async:(BOOL)async;
|
||||
/**@}*/
|
||||
|
||||
/**
|
||||
* @{
|
||||
* Call this when your application starts.
|
||||
* This will initiate a call to Leanplum's servers to get the values
|
||||
* of the variables used in your app.
|
||||
*/
|
||||
+ (void)start;
|
||||
+ (void)startWithResponseHandler:(LeanplumStartBlock)response;
|
||||
+ (void)startWithUserAttributes:(NSDictionary *)attributes;
|
||||
+ (void)startWithUserId:(NSString *)userId;
|
||||
+ (void)startWithUserId:(NSString *)userId responseHandler:(LeanplumStartBlock)response;
|
||||
+ (void)startWithUserId:(NSString *)userId userAttributes:(NSDictionary *)attributes;
|
||||
+ (void)startWithUserId:(NSString *)userId userAttributes:(NSDictionary *)attributes
|
||||
responseHandler:(LeanplumStartBlock)startResponse;
|
||||
/**@}*/
|
||||
|
||||
/**
|
||||
* @{
|
||||
* Returns whether or not Leanplum has finished starting.
|
||||
*/
|
||||
+ (BOOL)hasStarted;
|
||||
|
||||
/**
|
||||
* Returns whether or not Leanplum has finished starting and the device is registered
|
||||
* as a developer.
|
||||
*/
|
||||
+ (BOOL)hasStartedAndRegisteredAsDeveloper;
|
||||
/**@}*/
|
||||
|
||||
/**
|
||||
* Block to call when the start call finishes, and variables are returned
|
||||
* back from the server. Calling this multiple times will call each block
|
||||
* in succession.
|
||||
*/
|
||||
+ (void)onStartResponse:(LeanplumStartBlock)block;
|
||||
|
||||
/**
|
||||
* Block to call when the variables receive new values from the server.
|
||||
* This will be called on start, and also later on if the user is in an experiment
|
||||
* that can update in realtime.
|
||||
*/
|
||||
+ (void)onVariablesChanged:(LeanplumVariablesChangedBlock)block;
|
||||
|
||||
/**
|
||||
* Block to call when the interface receive new values from the server.
|
||||
* This will be called on start, and also later on if the user is in an experiment
|
||||
* that can update in realtime.
|
||||
*/
|
||||
+ (void)onInterfaceChanged:(LeanplumInterfaceChangedBlock)block;
|
||||
|
||||
/**
|
||||
* Block to call when no more file downloads are pending (either when
|
||||
* no files needed to be downloaded or all downloads have been completed).
|
||||
*/
|
||||
+ (void)onVariablesChangedAndNoDownloadsPending:(LeanplumVariablesChangedBlock)block;
|
||||
|
||||
/**
|
||||
* Block to call ONCE when no more file downloads are pending (either when
|
||||
* no files needed to be downloaded or all downloads have been completed).
|
||||
*/
|
||||
+ (void)onceVariablesChangedAndNoDownloadsPending:(LeanplumVariablesChangedBlock)block;
|
||||
|
||||
/**
|
||||
* @{
|
||||
* Defines new action and message types to be performed at points set up on the Leanplum dashboard.
|
||||
*/
|
||||
+ (void)defineAction:(NSString *)name ofKind:(LeanplumActionKind)kind withArguments:(NSArray *)args;
|
||||
+ (void)defineAction:(NSString *)name ofKind:(LeanplumActionKind)kind withArguments:(NSArray *)args
|
||||
withOptions:(NSDictionary *)options;
|
||||
+ (void)defineAction:(NSString *)name ofKind:(LeanplumActionKind)kind withArguments:(NSArray *)args
|
||||
withResponder:(LeanplumActionBlock)responder;
|
||||
+ (void)defineAction:(NSString *)name ofKind:(LeanplumActionKind)kind withArguments:(NSArray *)args
|
||||
withOptions:(NSDictionary *)options
|
||||
withResponder:(LeanplumActionBlock)responder;
|
||||
/**@}*/
|
||||
|
||||
/**
|
||||
* Block to call when an action is received, such as to show a message to the user.
|
||||
*/
|
||||
+ (void)onAction:(NSString *)actionName invoke:(LeanplumActionBlock)block;
|
||||
|
||||
/**
|
||||
* Handles a push notification for apps that use Background Notifications.
|
||||
* Without background notifications, Leanplum handles them automatically.
|
||||
* Deprecated. Leanplum calls handleNotification automatically now. If you
|
||||
* implement application:didReceiveRemoteNotification:fetchCompletionHandler:
|
||||
* in your app delegate, you should remove any calls to [Leanplum handleNotification]
|
||||
* and call the completion handler yourself.
|
||||
*/
|
||||
+ (void)handleNotification:(NSDictionary *)userInfo
|
||||
fetchCompletionHandler:(LeanplumFetchCompletionBlock)completionHandler
|
||||
__attribute__((deprecated("Leanplum calls handleNotification automatically now. If you "
|
||||
"implement application:didReceiveRemoteNotification:fetchCompletionHandler: in your app "
|
||||
"delegate, you should remove any calls to [Leanplum handleNotification] and call the "
|
||||
"completion handler yourself.")));
|
||||
|
||||
#if LP_NOT_TV
|
||||
/**
|
||||
* Call this to handle custom actions for local notifications.
|
||||
*/
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
|
||||
#pragma clang diagnostic ignored "-Wstrict-prototypes"
|
||||
+ (void)handleActionWithIdentifier:(NSString *)identifier
|
||||
forLocalNotification:(UILocalNotification *)notification
|
||||
completionHandler:(void (^)())completionHandler;
|
||||
#pragma clang diagnostic pop
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Call this to handle custom actions for remote notifications.
|
||||
*/
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wstrict-prototypes"
|
||||
+ (void)handleActionWithIdentifier:(NSString *)identifier
|
||||
forRemoteNotification:(NSDictionary *)notification
|
||||
completionHandler:(void (^)())completionHandler;
|
||||
#pragma clang diagnostic pop
|
||||
|
||||
/*
|
||||
* Block to call that decides whether a notification should be displayed when it is
|
||||
* received while the app is running, and the notification is not muted.
|
||||
* Overrides the default behavior of showing an alert view with the notification message.
|
||||
*/
|
||||
+ (void)setShouldOpenNotificationHandler:(LeanplumShouldHandleNotificationBlock)block;
|
||||
|
||||
/**
|
||||
* @{
|
||||
* Adds a responder to be executed when an event happens.
|
||||
* Similar to the methods above but uses NSInvocations instead of blocks.
|
||||
* @see onStartResponse:
|
||||
*/
|
||||
+ (void)addStartResponseResponder:(id)responder withSelector:(SEL)selector;
|
||||
+ (void)addVariablesChangedResponder:(id)responder withSelector:(SEL)selector;
|
||||
+ (void)addInterfaceChangedResponder:(id)responder withSelector:(SEL)selector;
|
||||
+ (void)addVariablesChangedAndNoDownloadsPendingResponder:(id)responder withSelector:(SEL)selector;
|
||||
+ (void)addResponder:(id)responder withSelector:(SEL)selector forActionNamed:(NSString *)actionName;
|
||||
+ (void)removeStartResponseResponder:(id)responder withSelector:(SEL)selector;
|
||||
+ (void)removeVariablesChangedResponder:(id)responder withSelector:(SEL)selector;
|
||||
+ (void)removeInterfaceChangedResponder:(id)responder withSelector:(SEL)selector;
|
||||
+ (void)removeVariablesChangedAndNoDownloadsPendingResponder:(id)responder withSelector:(SEL)selector;
|
||||
+ (void)removeResponder:(id)responder withSelector:(SEL)selector forActionNamed:(NSString *)actionName;
|
||||
/**@}*/
|
||||
|
||||
/**
|
||||
* Sets additional user attributes after the session has started.
|
||||
* Variables retrieved by start won't be targeted based on these attributes, but
|
||||
* they will count for the current session for reporting purposes.
|
||||
* Only those attributes given in the dictionary will be updated. All other
|
||||
* attributes will be preserved.
|
||||
*/
|
||||
+ (void)setUserAttributes:(NSDictionary *)attributes;
|
||||
|
||||
/**
|
||||
* Updates a user ID after session start.
|
||||
*/
|
||||
+ (void)setUserId:(NSString *)userId;
|
||||
|
||||
/**
|
||||
* Updates a user ID after session start with a dictionary of user attributes.
|
||||
*/
|
||||
+ (void)setUserId:(NSString *)userId withUserAttributes:(NSDictionary *)attributes;
|
||||
|
||||
/**
|
||||
* Sets the traffic source info for the current user.
|
||||
* Keys in info must be one of: publisherId, publisherName, publisherSubPublisher,
|
||||
* publisherSubSite, publisherSubCampaign, publisherSubAdGroup, publisherSubAd.
|
||||
*/
|
||||
+ (void)setTrafficSourceInfo:(NSDictionary *)info;
|
||||
|
||||
/**
|
||||
* @{
|
||||
* Advances to a particular state in your application. The string can be
|
||||
* any value of your choosing, and will show up in the dashboard.
|
||||
* A state is a section of your app that the user is currently in.
|
||||
* @param state The name of the state.
|
||||
*/
|
||||
+ (void)advanceTo:(NSString *)state;
|
||||
|
||||
/**
|
||||
* Advances to a particular state in your application. The string can be
|
||||
* any value of your choosing, and will show up in the dashboard.
|
||||
* A state is a section of your app that the user is currently in.
|
||||
* @param state The name of the state.
|
||||
* @param info Anything else you want to log with the state. For example, if the state
|
||||
* is watchVideo, info could be the video ID.
|
||||
*/
|
||||
+ (void)advanceTo:(NSString *)state withInfo:(NSString *)info;
|
||||
|
||||
/**
|
||||
* Advances to a particular state in your application. The string can be
|
||||
* any value of your choosing, and will show up in the dashboard.
|
||||
* A state is a section of your app that the user is currently in.
|
||||
* You can specify up to 200 types of parameters per app across all events and state.
|
||||
* The parameter keys must be strings, and values either strings or numbers.
|
||||
* @param state The name of the state.
|
||||
* @param params A dictionary with custom parameters.
|
||||
*/
|
||||
+ (void)advanceTo:(NSString *)state withParameters:(NSDictionary *)params;
|
||||
|
||||
/**
|
||||
* Advances to a particular state in your application. The string can be
|
||||
* any value of your choosing, and will show up in the dashboard.
|
||||
* A state is a section of your app that the user is currently in.
|
||||
* You can specify up to 200 types of parameters per app across all events and state.
|
||||
* The parameter keys must be strings, and values either strings or numbers.
|
||||
* @param state The name of the state. (nullable)
|
||||
* @param info Anything else you want to log with the state. For example, if the state
|
||||
* is watchVideo, info could be the video ID.
|
||||
* @param params A dictionary with custom parameters.
|
||||
*/
|
||||
+ (void)advanceTo:(NSString *)state withInfo:(NSString *)info andParameters:(NSDictionary *)params;
|
||||
|
||||
/**
|
||||
* Pauses the current state.
|
||||
* You can use this if your game has a "pause" mode. You shouldn't call it
|
||||
* when someone switches out of your app because that's done automatically.
|
||||
*/
|
||||
+ (void)pauseState;
|
||||
|
||||
/**
|
||||
* Resumes the current state.
|
||||
*/
|
||||
+ (void)resumeState;
|
||||
|
||||
/**
|
||||
* Automatically tracks all of the screens in the app as states.
|
||||
* You should not use this in conjunction with advanceTo as the user can only be in
|
||||
* 1 state at a time. This method requires LeanplumUIEditor module.
|
||||
*/
|
||||
+ (void)trackAllAppScreens;
|
||||
|
||||
/**
|
||||
* LPTrackScreenMode enum.
|
||||
* LPTrackScreenModeDefault mans that states are the full view controller type name.
|
||||
* LPTrackScreenModeStripViewController will cause the string "ViewController" to be stripped from
|
||||
* the end of the state.
|
||||
*/
|
||||
typedef NS_ENUM(NSUInteger, LPTrackScreenMode) {
|
||||
LPTrackScreenModeDefault = 0,
|
||||
LPTrackScreenModeStripViewController
|
||||
};
|
||||
|
||||
/**
|
||||
* Automatically tracks all of the screens in the app as states.
|
||||
* You should not use this in conjunction with advanceTo as the user can only be in
|
||||
* 1 state at a time. This method requires LeanplumUIEditor module.
|
||||
* @param trackScreenMode Choose mode for display. Default is the view controller type name.
|
||||
*/
|
||||
+ (void)trackAllAppScreensWithMode:(LPTrackScreenMode)trackScreenMode;
|
||||
|
||||
/**
|
||||
* Manually track purchase event with currency code in your application. It is advised to use
|
||||
* trackInAppPurchases to automatically track IAPs.
|
||||
*/
|
||||
+ (void)trackPurchase:(NSString *)event withValue:(double)value
|
||||
andCurrencyCode:(NSString *)currencyCode andParameters:(NSDictionary *)params;
|
||||
|
||||
/**
|
||||
* Automatically tracks InApp purchase and does server side receipt validation.
|
||||
*/
|
||||
+ (void)trackInAppPurchases;
|
||||
|
||||
/**
|
||||
* Manually tracks InApp purchase and does server side receipt validation.
|
||||
*/
|
||||
+ (void)trackInAppPurchase:(SKPaymentTransaction *)transaction;
|
||||
/**@}*/
|
||||
|
||||
/**
|
||||
* @{
|
||||
* Logs a particular event in your application. The string can be
|
||||
* any value of your choosing, and will show up in the dashboard.
|
||||
* To track a purchase, use LP_PURCHASE_EVENT.
|
||||
*/
|
||||
+ (void)track:(NSString *)event;
|
||||
+ (void)track:(NSString *)event withValue:(double)value;
|
||||
+ (void)track:(NSString *)event withInfo:(NSString *)info;
|
||||
+ (void)track:(NSString *)event withValue:(double)value andInfo:(NSString *)info;
|
||||
|
||||
// See above for the explanation of params.
|
||||
+ (void)track:(NSString *)event withParameters:(NSDictionary *)params;
|
||||
+ (void)track:(NSString *)event withValue:(double)value andParameters:(NSDictionary *)params;
|
||||
+ (void)track:(NSString *)event withValue:(double)value andInfo:(NSString *)info andParameters:(NSDictionary *)params;
|
||||
/**@}*/
|
||||
|
||||
/**
|
||||
* @{
|
||||
* Gets the path for a particular resource. The resource can be overridden by the server.
|
||||
*/
|
||||
+ (NSString *)pathForResource:(NSString *)name ofType:(NSString *)extension;
|
||||
+ (id)objectForKeyPath:(id)firstComponent, ... NS_REQUIRES_NIL_TERMINATION;
|
||||
+ (id)objectForKeyPathComponents:(NSArray *)pathComponents;
|
||||
/**@}*/
|
||||
|
||||
/**
|
||||
* Gets a list of variants that are currently active for this user.
|
||||
* Each variant is a dictionary containing an id.
|
||||
*/
|
||||
+ (NSArray *)variants;
|
||||
|
||||
/**
|
||||
* Returns metadata for all active in-app messages.
|
||||
* Recommended only for debugging purposes and advanced use cases.
|
||||
*/
|
||||
+ (NSDictionary *)messageMetadata;
|
||||
|
||||
/**
|
||||
* Forces content to update from the server. If variables have changed, the
|
||||
* appropriate callbacks will fire. Use sparingly as if the app is updated,
|
||||
* you'll have to deal with potentially inconsistent state or user experience.
|
||||
*/
|
||||
+ (void)forceContentUpdate;
|
||||
|
||||
/**
|
||||
* Forces content to update from the server. If variables have changed, the
|
||||
* appropriate callbacks will fire. Use sparingly as if the app is updated,
|
||||
* you'll have to deal with potentially inconsistent state or user experience.
|
||||
* The provided callback will always fire regardless
|
||||
* of whether the variables have changed.
|
||||
*/
|
||||
+ (void)forceContentUpdate:(LeanplumVariablesChangedBlock)block;
|
||||
|
||||
/**
|
||||
* This should be your first statement in a unit test. This prevents
|
||||
* Leanplum from communicating with the server.
|
||||
*/
|
||||
+ (void)enableTestMode;
|
||||
|
||||
/**
|
||||
* Used to enable or disable test mode. Test mode prevents Leanplum from
|
||||
* communicating with the server. This is useful for unit tests.
|
||||
*/
|
||||
+ (void)setTestModeEnabled:(BOOL)isTestModeEnabled;
|
||||
|
||||
/**
|
||||
* Customize push setup. If this API should be called before [Leanplum start]. If this API is not
|
||||
* used the default push setup from the docs will be used for "Push Ask to Ask" and
|
||||
* "Register For Push".
|
||||
*/
|
||||
+ (void)setPushSetup:(LeanplumPushSetupBlock)block;
|
||||
|
||||
/**
|
||||
* Get the push setup block.
|
||||
*/
|
||||
+ (LeanplumPushSetupBlock)pushSetupBlock;
|
||||
|
||||
/**
|
||||
* Returns YES if the app existed on the device more than a day previous to a version built with
|
||||
* Leanplum was installed.
|
||||
*/
|
||||
+ (BOOL)isPreLeanplumInstall;
|
||||
|
||||
/**
|
||||
* Returns the deviceId in the current Leanplum session. This should only be called after
|
||||
* [Leanplum start].
|
||||
*/
|
||||
+ (NSString *)deviceId;
|
||||
|
||||
/**
|
||||
* Returns the userId in the current Leanplum session. This should only be called after
|
||||
* [Leanplum start].
|
||||
*/
|
||||
+ (NSString *)userId;
|
||||
|
||||
/**
|
||||
* Returns an instance to the singleton LPInbox object.
|
||||
*/
|
||||
+ (LPInbox *)inbox;
|
||||
|
||||
/**
|
||||
* Returns an instance to the singleton LPNewsfeed object.
|
||||
* Deprecated. Use {@link inbox} instead.
|
||||
*/
|
||||
+ (LPNewsfeed *)newsfeed __attribute__((deprecated("Use inbox instead.")));
|
||||
|
||||
/**
|
||||
* Types of location accuracy. Higher value implies better accuracy.
|
||||
*/
|
||||
typedef enum {
|
||||
LPLocationAccuracyIP = 0,
|
||||
LPLocationAccuracyCELL = 1,
|
||||
LPLocationAccuracyGPS = 2
|
||||
} LPLocationAccuracyType;
|
||||
|
||||
/**
|
||||
* Set location manually. Calls setDeviceLocationWithLatitude:longitude:type: with cell type.
|
||||
* Best if used in after calling setDeviceLocationWithLatitude:.
|
||||
*/
|
||||
+ (void)setDeviceLocationWithLatitude:(double)latitude
|
||||
longitude:(double)longitude;
|
||||
|
||||
/**
|
||||
* Set location manually. Best if used in after calling setDeviceLocationWithLatitude:.
|
||||
* Useful if you want to apply additional logic before sending in the location.
|
||||
*/
|
||||
+ (void)setDeviceLocationWithLatitude:(double)latitude
|
||||
longitude:(double)longitude
|
||||
type:(LPLocationAccuracyType)type;
|
||||
|
||||
/**
|
||||
* Set location manually. Best if used in after calling setDeviceLocationWithLatitude:.
|
||||
* If you have the CLPlacemark info: city is locality, region is administrativeArea,
|
||||
* and country is ISOcountryCode.
|
||||
*/
|
||||
+ (void)setDeviceLocationWithLatitude:(double)latitude
|
||||
longitude:(double)longitude
|
||||
city:(NSString *)city
|
||||
region:(NSString *)region
|
||||
country:(NSString *)country
|
||||
type:(LPLocationAccuracyType)type;
|
||||
|
||||
/**
|
||||
* Disables collecting location automatically. Will do nothing if Leanplum-Location is not used.
|
||||
*/
|
||||
+ (void)disableLocationCollection;
|
||||
|
||||
@end
|
||||
|
||||
@interface LeanplumCompatibility : NSObject
|
||||
|
||||
/**
|
||||
* Used only for compatibility with Google Analytics.
|
||||
*/
|
||||
+ (void)gaTrack:(NSObject *)trackingObject;
|
||||
|
||||
@end
|
||||
|
||||
@class LPVar;
|
||||
|
||||
/**
|
||||
* Receives callbacks for {@link LPVar}
|
||||
*/
|
||||
@protocol LPVarDelegate <NSObject>
|
||||
@optional
|
||||
/**
|
||||
* For file variables, called when the file is ready.
|
||||
*/
|
||||
- (void)fileIsReady:(LPVar *)var;
|
||||
/**
|
||||
* Called when the value of the variable changes.
|
||||
*/
|
||||
- (void)valueDidChange:(LPVar *)var;
|
||||
@end
|
||||
|
||||
/**
|
||||
* A variable is any part of your application that can change from an experiment.
|
||||
* Check out {@link Macros the macros} for defining variables more easily.
|
||||
*/
|
||||
@interface LPVar : NSObject
|
||||
/**
|
||||
* @{
|
||||
* Defines a {@link LPVar}
|
||||
*/
|
||||
|
||||
+ (LPVar *)define:(NSString *)name;
|
||||
+ (LPVar *)define:(NSString *)name withInt:(int)defaultValue;
|
||||
+ (LPVar *)define:(NSString *)name withFloat:(float)defaultValue;
|
||||
+ (LPVar *)define:(NSString *)name withDouble:(double)defaultValue;
|
||||
+ (LPVar *)define:(NSString *)name withCGFloat:(CGFloat)cgFloatValue;
|
||||
+ (LPVar *)define:(NSString *)name withShort:(short)defaultValue;
|
||||
+ (LPVar *)define:(NSString *)name withChar:(char)defaultValue;
|
||||
+ (LPVar *)define:(NSString *)name withBool:(BOOL)defaultValue;
|
||||
+ (LPVar *)define:(NSString *)name withString:(NSString *)defaultValue;
|
||||
+ (LPVar *)define:(NSString *)name withNumber:(NSNumber *)defaultValue;
|
||||
+ (LPVar *)define:(NSString *)name withInteger:(NSInteger)defaultValue;
|
||||
+ (LPVar *)define:(NSString *)name withLong:(long)defaultValue;
|
||||
+ (LPVar *)define:(NSString *)name withLongLong:(long long)defaultValue;
|
||||
+ (LPVar *)define:(NSString *)name withUnsignedChar:(unsigned char)defaultValue;
|
||||
+ (LPVar *)define:(NSString *)name withUnsignedInt:(unsigned int)defaultValue;
|
||||
+ (LPVar *)define:(NSString *)name withUnsignedInteger:(NSUInteger)defaultValue;
|
||||
+ (LPVar *)define:(NSString *)name withUnsignedLong:(unsigned long)defaultValue;
|
||||
+ (LPVar *)define:(NSString *)name withUnsignedLongLong:(unsigned long long)defaultValue;
|
||||
+ (LPVar *)define:(NSString *)name withUnsignedShort:(unsigned short)defaultValue;
|
||||
+ (LPVar *)define:(NSString *)name withFile:(NSString *)defaultFilename;
|
||||
+ (LPVar *)define:(NSString *)name withDictionary:(NSDictionary *)defaultValue;
|
||||
+ (LPVar *)define:(NSString *)name withArray:(NSArray *)defaultValue;
|
||||
+ (LPVar *)define:(NSString *)name withColor:(UIColor *)defaultValue;
|
||||
/**@}*/
|
||||
|
||||
/**
|
||||
* Returns the name of the variable.
|
||||
*/
|
||||
- (NSString *)name;
|
||||
|
||||
/**
|
||||
* Returns the components of the variable's name.
|
||||
*/
|
||||
- (NSArray *)nameComponents;
|
||||
|
||||
/**
|
||||
* Returns the default value of a variable.
|
||||
*/
|
||||
- (id)defaultValue;
|
||||
|
||||
/**
|
||||
* Returns the kind of the variable.
|
||||
*/
|
||||
- (NSString *)kind;
|
||||
|
||||
/**
|
||||
* Returns whether the variable has changed since the last time the app was run.
|
||||
*/
|
||||
- (BOOL)hasChanged;
|
||||
|
||||
/**
|
||||
* For file variables, called when the file is ready.
|
||||
*/
|
||||
- (void)onFileReady:(LeanplumVariablesChangedBlock)block;
|
||||
|
||||
/**
|
||||
* Called when the value of the variable changes.
|
||||
*/
|
||||
- (void)onValueChanged:(LeanplumVariablesChangedBlock)block;
|
||||
|
||||
/**
|
||||
* Sets the delegate of the variable in order to use
|
||||
* {@link LPVarDelegate::fileIsReady:} and {@link LPVarDelegate::valueDidChange:}
|
||||
*/
|
||||
- (void)setDelegate:(id <LPVarDelegate>)delegate;
|
||||
|
||||
/**
|
||||
* @{
|
||||
* Accessess the value(s) of the variable
|
||||
*/
|
||||
- (id)objectForKey:(NSString *)key;
|
||||
- (id)objectAtIndex:(NSUInteger )index;
|
||||
- (id)objectForKeyPath:(id)firstComponent, ... NS_REQUIRES_NIL_TERMINATION;
|
||||
- (id)objectForKeyPathComponents:(NSArray *)pathComponents;
|
||||
- (NSUInteger)count;
|
||||
|
||||
- (NSNumber *)numberValue;
|
||||
- (NSString *)stringValue;
|
||||
- (NSString *)fileValue;
|
||||
- (UIImage *)imageValue;
|
||||
- (int)intValue;
|
||||
- (double)doubleValue;
|
||||
- (CGFloat)cgFloatValue;
|
||||
- (float)floatValue;
|
||||
- (short)shortValue;
|
||||
- (BOOL)boolValue;
|
||||
- (char)charValue;
|
||||
- (long)longValue;
|
||||
- (long long)longLongValue;
|
||||
- (NSInteger)integerValue;
|
||||
- (unsigned char)unsignedCharValue;
|
||||
- (unsigned short)unsignedShortValue;
|
||||
- (unsigned int)unsignedIntValue;
|
||||
- (NSUInteger)unsignedIntegerValue;
|
||||
- (unsigned long)unsignedLongValue;
|
||||
- (unsigned long long)unsignedLongLongValue;
|
||||
- (UIColor *)colorValue;
|
||||
/**@}*/
|
||||
@end
|
||||
|
||||
@interface LPActionArg : NSObject
|
||||
/**
|
||||
* @{
|
||||
* Defines a Leanplum Action Argument
|
||||
*/
|
||||
+ (LPActionArg *)argNamed:(NSString *)name withNumber:(NSNumber *)defaultValue;
|
||||
+ (LPActionArg *)argNamed:(NSString *)name withString:(NSString *)defaultValue;
|
||||
+ (LPActionArg *)argNamed:(NSString *)name withBool:(BOOL)defaultValue;
|
||||
+ (LPActionArg *)argNamed:(NSString *)name withFile:(NSString *)defaultValue;
|
||||
+ (LPActionArg *)argNamed:(NSString *)name withDict:(NSDictionary *)defaultValue;
|
||||
+ (LPActionArg *)argNamed:(NSString *)name withArray:(NSArray *)defaultValue;
|
||||
+ (LPActionArg *)argNamed:(NSString *)name withAction:(NSString *)defaultValue;
|
||||
+ (LPActionArg *)argNamed:(NSString *)name withColor:(UIColor *)defaultValue;
|
||||
/**@}*/
|
||||
- (NSString *)name;
|
||||
- (NSString *)kind;
|
||||
- (id)defaultValue;
|
||||
|
||||
@end
|
||||
|
||||
@interface LPActionContext : NSObject
|
||||
|
||||
- (NSString *)actionName;
|
||||
|
||||
- (NSString *)stringNamed:(NSString *)name;
|
||||
- (NSString *)fileNamed:(NSString *)name;
|
||||
- (NSNumber *)numberNamed:(NSString *)name;
|
||||
- (BOOL)boolNamed:(NSString *)name;
|
||||
- (NSDictionary *)dictionaryNamed:(NSString *)name;
|
||||
- (NSArray *)arrayNamed:(NSString *)name;
|
||||
- (UIColor *)colorNamed:(NSString *)name;
|
||||
- (NSString *)htmlWithTemplateNamed:(NSString *)templateName;
|
||||
|
||||
/**
|
||||
* Runs the action given by the "name" key.
|
||||
*/
|
||||
- (void)runActionNamed:(NSString *)name;
|
||||
|
||||
/**
|
||||
* Runs and tracks an event for the action given by the "name" key.
|
||||
* This will track an event if no action is set.
|
||||
*/
|
||||
- (void)runTrackedActionNamed:(NSString *)name;
|
||||
|
||||
/**
|
||||
* Tracks an event in the context of the current message.
|
||||
*/
|
||||
- (void)track:(NSString *)event withValue:(double)value andParameters:(NSDictionary *)params;
|
||||
|
||||
/**
|
||||
* Tracks an event in the conext of the current message, with any parent actions prepended to the
|
||||
* message event name.
|
||||
*/
|
||||
- (void)trackMessageEvent:(NSString *)event
|
||||
withValue:(double)value
|
||||
andInfo:(NSString *)info
|
||||
andParameters:(NSDictionary *)params;
|
||||
|
||||
/**
|
||||
* Prevents the currently active message from appearing again in the future.
|
||||
*/
|
||||
- (void)muteFutureMessagesOfSameKind;
|
||||
|
||||
/**
|
||||
* Checks if the action context has any missing files that still need to be downloaded.
|
||||
*/
|
||||
- (BOOL)hasMissingFiles;
|
||||
|
||||
@end
|
||||
BIN
mobile/ios/ThirdParty/Leanplum/Leanplum.framework/Info.plist
vendored
Normal file
BIN
mobile/ios/ThirdParty/Leanplum/Leanplum.framework/Info.plist
vendored
Normal file
Binary file not shown.
BIN
mobile/ios/ThirdParty/Leanplum/Leanplum.framework/Leanplum
vendored
Normal file
BIN
mobile/ios/ThirdParty/Leanplum/Leanplum.framework/Leanplum
vendored
Normal file
Binary file not shown.
6
mobile/ios/ThirdParty/Leanplum/Leanplum.framework/Modules/module.modulemap
vendored
Normal file
6
mobile/ios/ThirdParty/Leanplum/Leanplum.framework/Modules/module.modulemap
vendored
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
framework module Leanplum {
|
||||
umbrella header "Leanplum.h"
|
||||
|
||||
export *
|
||||
module * { export * }
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue