iOS 的远程配置
注意:该项目不再维护。
许多开发人员没有意识到他们被允许远程控制其应用程序的行为(前提是应用程序没有下载任何新代码)。
GroundControl 为您提供了一种极其简单的方法来远程配置您的应用程序,允许您添加功能标志、即兴A/B 测试或简单的“每日消息”等内容。
它建立在AFNetworking之上,并提供单一类别NSUserDefaults
(只需添加#import "NSUserDefaults+GroundControl.h"
到您想要使用它的任何文件的顶部)。
客户端代码
NSURL *URL = [NSURL URLWithString:@"http://example.com/defaults.plist"]; [[NSUserDefaults standardUserDefaults] registerDefaultsWithURL:URL];
…或者如果您需要成功/失败的回调,并且不想听NSUserDefaultsDidChangeNotification
:
NSURL *URL = [NSURL URLWithString:@"http://example.com/defaults.plist"]; [[NSUserDefaults standardUserDefaults] registerDefaultsWithURL:URL success:^(NSDictionary *) { // ... } failure:^(NSError *) { // ... }];
…或者如果您需要使用除 GET 之外的 HTTP 方法,或者需要设置任何特殊标头,请指定NSURLRequest
:
NSURL *URL = [NSURL URLWithString:@"http://example.com/defaults.plist"]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:URL]; [[NSUserDefaults standardUserDefaults] registerDefaultsWithURLRequest:request success:^(NSURLRequest *, NSHTTPURLResponse *, NSDictionary *) { // ... } failure:^(NSURLRequest *, NSHTTPURLResponse *, NSError *) { // ... }];
服务器代码
GroundControl 异步下载并读取远程 plist 文件。这可以是静态文件,也可以是动态生成的,如以下示例所示(另请参阅 中的完整 Sinatra 应用程序example/server
):
红宝石
require 'sinatra' require 'plist' get '/defaults.plist' do content_type 'application/x-plist' { 'Greeting' => "Hello, World", 'Price' => 4.20, 'FeatureXIsLaunched' => true }.to_plist end
Python
from django.http import HttpResponse import plistlib def property_list(request): plist = { 'Greeting': "Hello, World", 'Price': 4.20, 'FeatureXIsLaunched': True, 'Status': 1 } return HttpResponse(plistlib.writePlistToString(plist))
Node.js
var plist = require('plist'), express = require('express') var host = "127.0.0.1" var port = 8080 var app = express() app.get("/", function(request, response) { response.send(plist.build( { 'Greeting': "Hello, World", 'Price': 4.20, 'FeatureXIsLaunched': true, 'Status': 1 } ).toString()) }) app.listen(port, host)
国内下载链接
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END