Skip to content
MyInputMethod一款iOS上的第三方输入法。集拼音,五笔,笔画,快捷短语/emoji/emoticon/图片表情/符号/上滑/左滑/粘贴等输入方式,及英文补全,自定义皮肤/样式等功能... http://app.wodedata.com
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore
LICENSE
README.md

README.md

MyInputMethod

MyInputMethod一款iOS上的第三方输入法。集拼音,五笔,笔画,快捷短语/emoji/emoticon/图片表情/符号/上滑/左滑/粘贴等输入方式,及英文补全,自定义皮肤/样式等功能... http://app.wodedata.com

技术参考:

iOS基础集合类:https://github.com/ming1016/study/wiki/iOS%E5%9F%BA%E7%A1%80%E9%9B%86%E5%90%88%E7%B1%BB

iOS-Core-Animation-Advanced-Techniques:http://www.cocoachina.com/ios/20150104/10814.html

自定义控件:http://objccn.io/issue-3-4/

How To Make a Custom Control:http://www.raywenderlich.com/36288/how-to-make-a-custom-control

AutoLayoutDemo:https://github.com/yechunjun/AutoLayoutDemo

先进的自动布局工具箱:http://objccn.io/issue-3-5/

细数AutoLayout以来UIView和UIViewController新增的相关API:http://chun.tips/blog/2014/10/23/xi-shu-autolayoutyi-lai-uiviewhe-uiviewcontrollerxin-zeng-de-xiang-guan-api-uiviewpian/

自动布局(autolayout)环境下图片编辑器的实现:http://blog.csdn.net/lihuiqwertyuiop/article/details/40015521

iOS界面开发的大一统:http://onevcat.com/2014/07/ios-ui-unique/

How can I set image in textDocumentProxy with custom keyboard extension iOS 8?:http://stackoverflow.com/questions/28630338/how-can-i-set-image-in-textdocumentproxy-with-custom-keyboard-extension-ios-8

iOS-Headers私有API:https://github.com/MP0w/iOS-Headers

Undo typing in UITextView:http://stackoverflow.com/questions/1991897/undo-typing-in-uitextview

Undo/redo with a UITextView:http://stackoverflow.com/questions/4070291/undo-redo-with-a-uitextview-ios-iphone/4071681#4071681

Designing for iOS - Taming UIButton:https://robots.thoughtbot.com/designing-for-ios-taming-uibutton

加密你的SQLite:http://foggry.com/blog/2014/05/19/jia-mi-ni-de-sqlite

纯UILabel实现文字的竖排显示:http://humin.me/archives/68

make a vertical text UILabel and UITextView for iOS:http://stackoverflow.com/questions/28544714/how-do-you-make-a-vertical-text-uilabel-and-uitextview-for-ios-in-swift

Vertical-Text-iOS:https://github.com/sangonz/Vertical-Text-iOS

Method Swizzling 和 AOP 实践:http://tech.glowing.com/cn/method-swizzling-aop/

资源参考:

特殊符号:

Unicode字符:https://en.wikipedia.org/wiki/Category:Unicode

特殊表情:

getEmoji:http://getemoji.com/

Unicode/List of useful symbols:https://en.wikibooks.org/wiki/Unicode/List_of_useful_symbols

Emoji Unicode Tables:http://apps.timwhitlock.info/emoji/tables/unicode

词库

五笔编码词库:https://github.com/ishitcno1/googleInputWubiTable

汉字转拼音:

https://github.com/jifei/Pinyin/

https://github.com/cleverdeng/pinyin.py

手写识别:

一个iOS版的基于zinnia的手写汉字识别:https://github.com/Crazylitm/HZRC

实现的功能需求点

键盘Extension

Part 1

1. 自定义皮肤,按键样式设置完善及数据存储整理;
2. 四种常规键盘(拼音全键,拼音九键,五笔全键,笔画全键)之间切换,上滑手势输入,字符键按提示窗;
3. 添加符号键盘(类似百度的符号键盘-CollectionView);
4. 五种特殊键盘(快捷短语/emoji/emoticon/图片表情/符号键盘)
    1. 数据源统一改成plist文件存储;
    2. 添加常用分类并存储到对应plist文件;
    3. 排序的优化;
5. 主设置界面修改及存储;
6. 输入候选区的添加;
7. 英文补全;
8. 繁简转换;
9. 火星文字转换;
10. 拼音全键输入实现;
11. 拼音九键输入实现;
12. 五笔全键输入实现;
13. 笔画全键输入实现;
14. 输入加入联想联系人逻辑;
15. 九种键盘的删除键/空格键长按输入;
16. 横竖屏优化,剪粘板,按键音处理;
17. 图片表情的社会化分享的集成;
18. 主题的添加/设置/选择;

Part 2(已完成)

1. 修改样式及时生效,及皮肤设置长按恢复默认样式;
2. 许多不使用键盘默认变为拼音全键盘bug;
3. enter键长按:换行功能;
4. 切换键盘或地球键长按/短按 - 英文输入词上屏;
5. 五笔一/二/三/四级简码词频设置;
6. 自定义添加大图片表情;
7. 加载图片选择器时,释放词库;
8. 自定义短语添加(主App);
9. 默认主题;
10. 搜索:百度及网易云音乐;(入口:光标滑动的长按弹出搜索栏;logo菜单;地球键;)
11. 涂鸦:(入口:表情长按;logo菜单;地球键;)
12. 翻译:(入口:搜索工具栏上翻译按钮;logo菜单;地球键)
13. 联系人名片:(入口:快捷短语添加一个分类按钮,logo菜单)
14. 拼音注音转换:(入口:logo菜单;收起键盘键长按)
15. 密文处理:(入口:表情长按)
16. 相册、联系人选择:(入口:搜索弹窗;logo菜单);
17. 手写输入(通过使用在线web api方式实现);
18. 添加快捷短语及分类;
19. 图片表情的添加及分类;

Part 3(已完成)

1. 长按加密聊天;
2. 直接http url -> 打开web页,刷新、分享、收藏下载图片,Safari打开;
3. 毛笔书写;
4. GIF分类搜索;
5. 样式设置顺序调整;
6. 表情分类顺序调整、可编辑;
7. 手写板遮罩层;
8. Web的404页面及弹窗处理;
9. 键间距配置;
10. 音乐搜索限制;
11. 分享面板QQ,微信是否安装检查;
12. sqlite加密;
13. 背景色与PopView颜色互换,搜索、翻译、拼音背景色调整;
14. 保存到相册权限判断,翻译模式下,长按候选词逻辑;
15. 符号及表情类型最近使用的分类记忆;
16. 二维码截图分享默认截取区域修改;
17. 服务端增加禁用开关;
18. 网络不通时打开Web搜索阻塞主UI;
19. 九宫格拼音更多候选词展示问题;
20. 资源本地化及主App数据网络请求;

主App(已完成)

1. 输入法教程Guide;
2. 五笔输入指南(百度文库资料):
    1. 五笔字根表;
    2. 五笔各级简码指南;(https://wenku.baidu.com/view/42504df17c1cfad6195fa7c5.html)
    3. 特殊词编码分类;
3. 笔划输入指南:https://wenku.baidu.com/view/f53654286edb6f1aff001f3b.html
4. 背景图模糊度调节;
5. 关于&源码;
6. 主App无网络的情况下的处理;
7. 首页中部Logo文字用物理摔子替代;
8. WKWebView 404页面问题修改;
9. 完善App画板;
10. 主App图片增加保存,Detail页增加分享,跳safari,同样键盘网页都可跳过来;
11. 留言反馈;
12. 小工具Google Web 翻译;
13. 小工具Baidu原生页翻译;
14. 小工具拼音转换;
15. 二维码生成器;
16. 小工具二维码扫描及生成;
17. 远程推送打开指定落地页;
18. 小工具建桌面快捷方式;
19. 小工具App高级涂鸭板与键盘涂鸭关联映射;
20. 主App分享加入微博,分享标识为万能输入法App;
21. 第三方应用打开网页直接跳到App对应页或提示安装。
22. 打包记得把几个库改用为Release版本的;
23. 分享:微信好友、收藏、朋友圈、QQ、系统、Safari打开;

后续优化需求点

键盘Extension

1. 动画的添加;
2. 边缘上滑展开、下滑折叠手势;
3. 英文常用url词库补全;
4. 点击统计;

工具栏按钮长按响应规则

1. logo长按弹起聊天窗;
2. 光标滑动的长按弹出搜索栏;
3. 收起键盘键长按拼音转换;

主App

1. 小工具喝水提醒;
2. 小工具语音备忘每日一记;
3. 小工具卡密管理,sqlite;
4. 小工具音乐播放;
5. 小工具直播,IM聊天;
6. 小工具成语正则搜索;
7. 联系人的导入;
8. 不同输入框类型测试;
9. Gif图片大小帧率处理
10. live photos转Gif导入;
11. gif图片/压缩包的导入;
12. url下载gif导入;
13. 恢复到默认主题设置;
14. 第三方App分享图片到表情的Share Extension;

部分API分享

百度翻译API

http://api.fanyi.baidu.com/api/trans/product/desktop?req=developer

网易云音乐分析

搜索歌曲

curl --request POST \
  --url http://music.163.com/api/search/get \
  --header 'content-type: application/x-www-form-urlencoded' \
  --header 'referer: http://music.163.com/' \
  --data 's=%E6%BC%94%E5%91%98&type=1&offset=0&total=true&limit=20'

歌曲详情

curl --request GET \
  --url 'http://music.163.com/api/song/detail/?id=32507038&ids=%5B32507038%5D' \
  --header 'referer: http://music.163.com/'

音乐文件下载地址

import md5

def encrypted_id(id):
    byte1 = bytearray('3go8&$8*3*3h0k(2)2')
    byte2 = bytearray(id)
    byte1_len = len(byte1)
    for i in xrange(len(byte2)):
        print i,    # print 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
        byte2[i] = byte2[i]^byte1[i%byte1_len]
    m = md5.new()
    # str2 = "".join(map(chr, byte2))
    m.update(str(byte2))
    result = m.digest().encode('base64')[:-1]
    print result    # print WddsKHFgZv5+uS8mXxREcA==
    result = result.replace('/', '_')
    result = result.replace('+', '-')
    return result

print(encrypted_id('3233663700533995'))     # print WddsKHFgZv5-uS8mXxREcA==

for i in xrange(10):
    print i,

print 'test\n'[:-1] # delete last charater

a=range(10)
print a         # print [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print a[:-1]    # print [0, 1, 2, 3, 4, 5, 6, 7, 8]

参考

网易云音乐API分析

网易云音乐的API https://zhuanlan.zhihu.com/p/21326015

网易云音乐新版WebAPI分析 https://github.com/darknessomi/musicbox/wiki/%E7%BD%91%E6%98%93%E4%BA%91%E9%9F%B3%E4%B9%90%E6%96%B0%E7%89%88WebAPI%E5%88%86%E6%9E%90%E3%80%82

网易云音乐常用API浅析 http://moonlib.com/606.html

网易云音乐API http://www.jianshu.com/p/ab746499b920

网易云音乐api整理(神坑慎入) http://qianzewei.com/2015/12/10/%E7%BD%91%E6%98%93%E4%BA%91%E9%9F%B3%E4%B9%90api%E6%95%B4%E7%90%86/

mac输入法相关资料

OpenVanilla 輸入法套件

OpenVanilla輸入法框架官网

Input Method Kit Framework Reference

NumberInput_IMKit_Sample

Apple's NumberInput sample code with each 'step' commit

InputMethodKit reference

A better input source switcher for OS X

Rime Input Method Engine, the core librar

现在如何在 Mac OS X 中写一套输入法 (一)

OS X Yosemite: 创建和使用您自己的输入源

其他

Google Cloud Platform https://cloud.google.com/appengine/docs/python/endpoints/consume_ios#adding_a_sign-in_dialog_to_your_ios_client

百度汉语:http://hanyu.baidu.com/

书法字典

墨客书法在线字典

书法字典在线查询

墨客书法字典

中国书法网

中文字码转换 中文码表查询

voice over 支持voice over

Markdown/网址撰写模式 Markdown撰写模式:MXMarkdownKeyboard

推送测试 使用工具NWPusher测试更方便:https://github.com/noodlewerk/NWPusher

{
  "aps": {
    "alert": "维维维维维维维维维维维维维维维维",
    "badge": 1,
    "sound": "default"
  },
  "url":"LWInputMethod://home.https?url=https%3a%2f%2fm.baidu.com"
}
You can’t perform that action at this time.