{"id":18438218,"url":"https://github.com/easemob/whiteboard_demo_ios","last_synced_at":"2026-07-17T11:39:09.406Z","repository":{"id":93747202,"uuid":"247048200","full_name":"easemob/whiteboard_demo_ios","owner":"easemob","description":null,"archived":false,"fork":false,"pushed_at":"2020-09-25T11:41:46.000Z","size":249,"stargazers_count":0,"open_issues_count":0,"forks_count":2,"subscribers_count":14,"default_branch":"master","last_synced_at":"2025-04-14T14:59:14.814Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Objective-C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/easemob.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-03-13T10:44:43.000Z","updated_at":"2020-09-25T11:41:48.000Z","dependencies_parsed_at":null,"dependency_job_id":"5acd7a62-b93e-4080-867f-b2e2f7938a49","html_url":"https://github.com/easemob/whiteboard_demo_ios","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/easemob/whiteboard_demo_ios","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/easemob%2Fwhiteboard_demo_ios","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/easemob%2Fwhiteboard_demo_ios/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/easemob%2Fwhiteboard_demo_ios/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/easemob%2Fwhiteboard_demo_ios/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/easemob","download_url":"https://codeload.github.com/easemob/whiteboard_demo_ios/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/easemob%2Fwhiteboard_demo_ios/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35580669,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-17T02:00:06.162Z","response_time":116,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-06T06:19:05.195Z","updated_at":"2026-07-17T11:39:09.354Z","avatar_url":"https://github.com/easemob.png","language":"Objective-C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# whiteboard_demo_ios\n--------\n## 简介\n本Demo展示了怎么使用环信SDK创建和加入白板房间\n\n要求：1.SDK使用3.6.5版本以上的   2.手机系统版本9.0以上\n\n手动和pod导入3.6.5版本以上SDK都支持。 SDK下载链接：http://www.easemob.com/download/im\n\n## Demo实现逻辑\n1、在启动app时，会随机注册一个账号登录，如果已登录则会跳过登录\n\n2、根据输入的房间名称和房间密码加入白板房间，如果不存在则去创建对应的白板房间，如果存在直接加入对应的白板房间\n\n3、创建或者加入成功后拿到返回的白板房间url跳转webview加载显示\n\n## 相关SDK方法\n\n/**\n * \\~chinese\n * 创建白板房间\n * @param aUsername         用户名\n * @param aToken            用户的token\n * @param aRoomName         房间名\n * @param aPassword         房间的密码\n * @param aCompletionBlock  请求完成的回调\n *\n * \\~english\n * create room for whiteboard\n * @param aUsername         username\n * @param aToken            user's token\n * @param aRoomName         room name for whiteboard\n * @param aPassword         password for room\n * @param aCompletionBlock  callback\n */\n- (void)createWhiteboardRoomWithUsername:(NSString *)aUsername\n                               userToken:(NSString *)aToken\n                                roomName:(NSString *)aRoomName\n                            roomPassword:(NSString *)aPassword\n                              completion:(void(^)(EMWhiteboard *aWhiteboard, EMError *aError))aCompletionBlock;\n\n/**\n * \\~chinese\n * 通过白板名称加入房间\n * @param aRoomName         房间名\n * @param aUsername         用户名\n * @param aToken            用户的token\n * @param aPassword         房间的密码\n * @param aCompletionBlock  请求完成的回调\n *\n * \\~english\n * join whiteboard room with name\n * @param aRoomName         room name for whiteboard\n * @param aUsername         username\n * @param aToken            user's token\n * @param aPassword         password for room\n * @param aCompletionBlock  callback\n */\n- (void)joinWhiteboardRoomWithName:(NSString *)aRoomName\n                          username:(NSString *)aUsername\n                         userToken:(NSString *)aToken\n                      roomPassword:(NSString *)aPassword\n                        completion:(void(^)(EMWhiteboard *aWhiteboard, EMError *aError))aCompletionBlock;\n\n\n/**\n * \\~chinese\n * 销毁白板房间\n * @param aUsername         用户名\n * @param aToken            用户的token\n * @param aRoomId           房间id\n * @param aCompletionBlock  请求完成的回调\n *\n * \\~english\n * create room for whiteboard\n * @param aUsername         username\n * @param aToken            user's token\n * @param aRoomId           room id for whiteboard\n * @param aCompletionBlock  callback\n */\n- (void)destroyWhiteboardRoomWithUsername:(NSString *)aUsername\n                                userToken:(NSString *)aToken\n                                   roomId:(NSString *)aRoomId\n                               completion:(void(^)(EMError *aError))aCompletionBlock;\n                               \n\n## SDK方法调用示例：\n\n// 创建白板房间\n[[EMClient sharedClient].conferenceManager createWhiteboardRoomWithUsername:@\"username\" userToken:[EMClient sharedClient].accessUserToken roomName:@\"roomName\" roomPassword:@\"password\" completion:^(EMWhiteboard *aWhiteboard, EMError *aError) {\n    if (!aError) {\n        NSLog(@\"创建白板房间成功 --- \");\n        NSLog(@\"白板房间url --- %@\", aWhiteboard.roomURL);\n    } else {\n        NSLog(@\"创建白板房间失败 --- %@\", aError.errorDescription);\n    }\n}];\n\n// 加入白板房间\n[[EMClient sharedClient].conferenceManager joinWhiteboardRoomWithName:@\"@\"roomName\"\" username:@\"username\" userToken:[EMClient sharedClient].accessUserToken roomPassword:@\"password\" completion:^(EMWhiteboard *aWhiteboard, EMError *aError) {\n    if (!aError) {\n        NSLog(@\"加入白板房间成功 --- \");\n        NSLog(@\"白板房间url --- %@\", aWhiteboard.roomURL);\n    } else {\n        NSLog(@\"加入白板房间失败 --- %@\", aError.errorDescription);\n    }\n}];\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feasemob%2Fwhiteboard_demo_ios","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feasemob%2Fwhiteboard_demo_ios","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feasemob%2Fwhiteboard_demo_ios/lists"}