CJRouter是一个iOS库。
此库用于在指定的控制器上启动应用程序。例如,直接在新闻条目的详情中打开应用程序
1 - 添加库
2 - 创建URL方案
3 - 编辑文件projectDelegate.m
4 - 创建Router.plist
myapp://view1
myapp://view1?param=hello
下载CJRouter库并将其包含在项目中。
步骤 1. 编辑info.plist
步骤 2. 右键单击并“添加行”
步骤 3. 将“URL类型”作为键
步骤 4. 展开“项 1”,并为URL标识符提供值。这可以是任何值,但通常使用“反向域名”(例如,“com.myapp”)。
步骤 5. 添加另一行,这一次到“项 1”。
步骤 6. 选择“URL Schemes”作为键。
步骤 7. 输入将成为URL方案的字符(例如,“myapp://”将是“myapp”)。虽然可以通过添加到此部分的方式注册多个方案,但这是一件奇怪的事情。
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
[[CJRouter sharedCJRouter] setDelegate:self.window.rootViewController];
[[CJRouter sharedCJRouter] launchControllerAtRoute:url];
return YES;
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Routes</key>
<dict>
<key>view1</key>
<dict>
<key>class</key>
<string>CJView1Controller</string>
<key>properties</key>
<dict>
<key>modalTransitionStyle</key>
<integer>1</integer>
<key>uid</key>
<integer>3</integer>
<key>framestring</key>
<string>{{10, 10}, {200, 25}}</string>
</dict>
</dict>
<key>view2</key>
<dict>
<key>method</key>
<dict>
<key>param1</key>
<string>CJView2Controller</string>
<key>name</key>
<string>initWithNibName</string>
</dict>
<key>class</key>
<string>CJView2Controller</string>
</dict>
</dict>
</dict>
</plist>
有关如何使用CJRouter与智能横幅,请参阅苹果文档
示例
<meta name="apple-itunes-app" content="app-id=myAppStoreID, app-argument=myapp://view1?param=hello" />
如果您在不同的ARC项目中使用CJRouter,您需要设置编译器标志-fno-objc-arc
。
要在Xcode中设置编译器标志,转到您的活动目标并选择“构建 phases”标签。现在选择所有的CJRouter源文件,按Enter键,插入-fno-objc-arc
,然后按“Done”启用或禁用ARC。