V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
legendlee
V2EX  ›  Android

我想在一个原生 app 中嵌入一部分 web 内容,请问有什么好的框架和案例吗?

  •  
  •   legendlee · 2015-10-02 02:06:40 +08:00 via Android · 8480 次点击
    这是一个创建于 3129 天前的主题,其中的信息可能已经有所发展或是发生改变。
    抱歉我是做前端的,对 android 不够了解。现在要做这部分工作,我准备从 android 开始做起,然后再考虑 ios 。

    我的目标是这样的:
    1 ,在原生 app 中嵌入若干 web 页面。
    2 ,转场无明显卡顿和黑屏等。 web 内容滚动无明显卡顿。
    3 , js 可能要调用若干原生功能,这个没必要提供很多接口,有框架我自己封装也行。
    4 ,兼容性问题要尽量解决掉。
    5 ,不要太大,现在的安装包已经 20 几兆了,不想再增大了。
    6 ,意淫需求。我们有些模块是 c++写的,所以有没有可能支持 npapi ?

    我考察了一些安卓混合开发框架, ionic , html5+等,他们都是大而全的框架,而我需要的实际上要简单的多。

    所以想请教一下,有没有开源工程里面有类似的实践,可以让我参考一下?跨平台的更好。谢谢。
    13 条回复    2015-10-02 09:30:49 +08:00
    legendlee
        1
    legendlee  
    OP
       2015-10-02 02:08:07 +08:00 via Android
    补充一下,我发现 ionic 做出来的东西滚动卡顿很严重,在安卓上。请问这是框架的问题吗?
    Septembers
        2
    Septembers  
       2015-10-02 02:18:47 +08:00 via Android
    视觉跨平台注定坑,
    视觉条件允许的情况下一定要 native 实现,
    逻辑的话可以共享
    legendlee
        3
    legendlee  
    OP
       2015-10-02 02:39:39 +08:00 via Android
    @Septembers 你是说 webview 内部的前端程序要根据平台分别实现吗?
    这个我倒是有心里准备。
    我主要是想看看有没有在两个平台上实现了相同功能,接口相似的 web 嵌入框架,或者有开源应用做了这个,性能尚可,我看看参考下也行。
    legendlee
        4
    legendlee  
    OP
       2015-10-02 02:42:35 +08:00 via Android
    @Septembers 至少能让我有办法给浏览器内核添加一些功能相同的 js 接口。我是想用 web 写一些内容展现的页面,但是还需要调用一些 native 功能。
    WildCat
        5
    WildCat  
       2015-10-02 06:41:55 +08:00
    Android 下 Hybrid App 必然卡成狗,考虑下 React Native 吧
    ttdevs
        6
    ttdevs  
       2015-10-02 07:08:41 +08:00
    第六条不明白,但是其他几条不用框架也可以啊
    meteor2013
        7
    meteor2013  
       2015-10-02 07:15:34 +08:00
    @legendlee


    ionic 不知道是不是安卓上卡,但 IOS APP 还行啊。
    你测试的时候卡吗?
    em70
        8
    em70  
       2015-10-02 07:37:12 +08:00 via Android
    卡主要是因为网络延迟,我是这样处理的,把 js, css ,小图片这些不经常修改的文件打包到 app 里,只从服务器下载 HTML ,下载到本地后再用浏览器打开,可以大大减少卡顿。

    有时候网络不稳定,一个 HTML 文件下载也可能很慢,继续优化,先自动加载上一次的 HTML 文件,然后开一个线程加载新的 HTML
    legendlee
        9
    legendlee  
    OP
       2015-10-02 09:18:50 +08:00 via Android
    @meteor2013 我下了几个 ionic 网站上推荐的几个 app ,安装之后没一个不卡的。只要是 listview 类的应用,必卡。
    legendlee
        10
    legendlee  
    OP
       2015-10-02 09:21:32 +08:00 via Android
    @meteor2013 就是 android , ios 我试了确实流畅的多。但是我有点奇怪的是,在 android 上比纯 web 卡多了。我做个移动网站也也不卡呀,但是所谓的 hybrid 就会卡。
    ryanemax
        11
    ryanemax  
       2015-10-02 09:21:46 +08:00 via Android
    6.同样需求 npapi ,最近一款 hybird 产品,用到了 npapi-vlc ,在求解中
    ps:cordova(ionic)优化后体验很棒,建议用 crosswolk , 20m 的开销,换来 hybird 优势值了
    ryanemax
        12
    ryanemax  
       2015-10-02 09:22:40 +08:00 via Android
    @legendlee 安卓可以考虑加 crosswalk
    legendlee
        13
    legendlee  
    OP
       2015-10-02 09:30:49 +08:00 via Android
    @ryanemax 谢谢。
    我们的应用已经太大了,花了不少精力才优化掉不少,现在是 20 多兆。如果是一个全新应用,我们肯定倾向于 crosswalk ,然后能用 web 的用 web 。现在是很多东西用原生做了,再加入 cw ,分分钟安装包 50 兆。。。实在太大了,又不是游戏。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3591 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 00:47 · PVG 08:47 · LAX 17:47 · JFK 20:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.