如下图所示,淘口令就是借助了APP对系统层面的粘贴板的访问和编辑权限,实现了这个分享的功能。

利用系统的UIPasteboard可以检测到系统剪切板是上的内容

首先在Appdelegate中

-(void)applicationWillEnterForeground:(UIApplication*)application {

NSLog(@”程序重新加载”);

[self getInvitationPush];  

}

//[self getInvitationPush] 这个方法也要在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 中调用

接下来:

- (void)getInvitationPush
{
UIPasteboard* pasteboard= [UIPasteboard generalPasteboard];
if(STRING_IS_NIL(pasteboard.string) ) {
return;
}
NSString* pasteUserDefaultStr = [[NSUserDefaults standardUserDefaults]objectForKey:@"pasteboardString"];
if(![pasteboard.stringrangeOfString:@"设定的标识符"].location!=NSNotFound)
{
return;
}

if(pasteUserDefaultStr ==nil|| [pasteUserDefaultStr isEqualToString:@""] || ![pasteUserDefaultStr isEqualToString:pasteboard.string]) {
//弹出添加
UIAlertView* alert = [[UIAlertView alloc]initWithTitle:@"提示"message:@"是否使用XXX"delegate:self cancelButtonTitle:@"添加"otherButtonTitles:@"取消",nil];
alert.tag=3001;
[alertshow];
[[NSUserDefaults standardUserDefaults]setObject:pasteboard.string forKey:@"pasteboardString"];
}}

​然后在Alert中用户点击查看 跳入相应的页面  用 componentsSeparatedByString取到最后的code就可以

InvitationCodeViewController* VC = [[InvitationCodeViewControlleralloc]init];  //这是你想要跳入的界面
UINavigationController* Nav = [[UINavigationControlleralloc]initWithRootViewController:VC];
[self.window.rootViewControllerpresentViewController:Navanimated:YEScompletion:nil];

​最后建立一个单例 将code记录下来