WebShell - 把 web app 打包成 native OS X app

2015-12-21 13:17:00 +08:00
 djyde

http://djyde.github.io/WebShell/

有很多时候我希望一个常用的 web app 是一个 native app 而不是一个 browser tab. 所以我学了一下 swift 和 cocoa ,想把自己常用的一些 web app 做成 native app 。这个 native app 仅仅是一个包含 WebView 的窗口就够了。

结果我发现每个 app 都这样做很费时间,所以我决定写一个基础的 seed project ——把基本的逻辑都写好,这样做一个新的 app 的时候只需要 clone 一下这个 seed project 然后改个 url 就完成了。

于是就有了 WebShell ,你只需要在 ViewController.swift 里改一些 configurations ,改个 icon ,立即就能把 web app 当成 native app 来跑,然后用 xcode archive 一个 .app 包就能使用。

比如说你现在只需要 $ git clone git@github.com:djyde/WebShell.git APP_NAME 就能建立一个 app project 跑起来。

Demo

这个是用 WebShell build 的 StackEdit (一个 markdown editor):

下载

这个是 JS Bin

下载

开源地址 http://djyde.github.io/WebShell/

5527 次点击
所在节点    分享创造
42 条回复
djyde
2015-12-21 13:17:59 +08:00
另外求懂 osx 开发的朋友帮忙 fix 一下 issue 的问题 😂
oott123
2015-12-21 16:24:00 +08:00
相比 electron 和 nw.js 有什么优势呢?
djyde
2015-12-21 16:35:22 +08:00
@oott123 electron 和 nw.js 包装了整个 node.js runtime, 而 WebShell 仅仅是一个 WebView 。做的事情不一样,没法比较
oott123
2015-12-21 16:43:49 +08:00
_(:з」∠)_也就是说你是它的子集咯。

其实我就是看楼主冷场了来凑个热闹,并没有 Mac OS 设备。(
oott123
2015-12-21 16:45:42 +08:00
(对了,在 Windows 上这个叫 hta
chemzqm
2015-12-21 16:48:11 +08:00
这个搞起来简单啊,但是应该不能跨平台
little_cup
2015-12-21 16:50:23 +08:00
以前拿 MacGap 打包试过,不过不会 OS X 开发,支持楼主!
希望可以自定义 UA ,和可以支持改变状态栏颜色,直接在配置中指定或者读取 Chrome theme-color 都好。
ericshine
2015-12-21 16:54:08 +08:00
解决了极大痛点
djyde
2015-12-21 17:00:18 +08:00
@little_cup 可以提个 issue
v1024
2015-12-21 18:48:13 +08:00
支持推送消息到通知中心吗?支持自定义 logo 吗? cookie 和 localstorage 如何处理的?
djyde
2015-12-21 20:19:12 +08:00
@v1024 notification 还在做, cookie 和 localstorage 和浏览器一样。 icon 是在 xcode 里自己 drag 进去的
kendetrics
2015-12-21 20:41:13 +08:00
槽我一直想要个 StackEdit 的客户端
好评如潮
l0wkey
2015-12-21 20:52:35 +08:00
是否可以自定义引入文件, 如 js , css
poke707
2015-12-21 20:53:44 +08:00
Logo 不错
djyde
2015-12-21 21:08:30 +08:00
@l0wkey 这样做会让 WebShell 变成一个 browser..
l0wkey
2015-12-21 21:15:48 +08:00
@djyde 哈哈哈, browser 默认情况下才不会允许自定义 css 和 js
TangMonk
2015-12-21 21:17:54 +08:00
not work on 10.10
djyde
2015-12-21 21:18:52 +08:00
@TangMonk what meas "not work"?
ericshine
2015-12-21 23:30:37 +08:00
应该也可以试试在 iOS 上做同样的事情。
sox
2015-12-21 23:33:18 +08:00
我用 MacGap 写了一句 `location.href = 'xxx'` 感觉差不多。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/245050

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX