如何从command line启动iPhone app(需jail break)

xiaoxiao2021-03-01  34

注:此方法只适合jail break过的iPhone

(关于如何jail break请自行Google,太多了)

 

前段时间突然有个需求,需要从command line启动任意的iPhone app,当时觉得这是个共性需求,应该早就有人开发出来了吧,果不其然国外有个Erica Utilities里面有个工具lauch,可以直接在command line下打开app,比如说开启计算器app,command line输入:lauch com.apple.Caculator 其中com.apple.Caculator为计算器app的bundle identifier。但以上命令我试过却直接出错,app根本不会被启动。Google了才知道上面的command只有在iOS2.0以前才可以用,之后都已不在支持,而且作者也没有打算改的意思。另外在Google同时发现跟我一样需求的人也被这个问题卡住,而且没有人找到一个可行的解决方法!

 

就这样边Google,边想办法,足足耗了两天时间!不过老天不负有心人,有天下午突然脑子闪过一个idea,之前开发iPhone app时记得在Apple的文档里有看到任意一个app都可以定义自己的URL scheme,比如Safari的URL scheme就是http://, Map的URL scheme就是map://, Telephone的是:tel://等等...那定义URL scheme后就能解决这个问题吗?答案还真是!

 

原来Erica Utilities里面还有一个工具openURL,可以直接在command line下打开URL,比如说要打开Safrai,command就是:openURL http://www.iteye.com 这样Safari就会启动,并且访问Java eye网站。所以只要每个app定义有自己的URL scheme,那就可以通过openURL来启动了,但...几乎80%的app(第三方开发)都没有定义URL scheme。

 

不过还好在jail break过的iPhone里,可以做的事情其实很多!虽然app在开发时没有添加URL scheme,但可以通过小小修改,就能给它添加上!方法如下:

1.找到app的安装目录,一般会在/User/Applications/F84C8C92-99BB-465C-AE26-D17765ACF936/xxx.app

2.在app目录下找到Info.plist文件,打开后如下图一样添加URL scheme

(URL identifier一般用app名,URL schemes可以定义多个,比如希望之后用myurl://来访问,那就定义myurl)

3.重启SpringBorad。(必须)

4.在command line输入openURL myurl://xxx 即刻打开这个app。

 

同样地,其他的app也可参照此方法给其添加URL scheme,然后就可通过openURL打开,爽吧!

转载请注明原文地址: https://www.6miu.com/read-3200054.html

最新回复(0)