答非所问
答非所问
  • 发布:2017-08-23 09:49
  • 更新:2017-08-23 11:07
  • 阅读:2059

一个让我怀疑人生的问题,原生界面和webapp怎么【无限】相互打开

分类:5+ SDK

目前正在做一个混合开发的App项目。其中一半原生,一半html,html使用的widget方式集成,首页面包括三个原生Fragment 和 H5界面 (widget集成) 。

如果是单层级的原生打开html还可以通过原生调用JS去打开指定html然后显示。

但是现在问题是在不关闭界面的情况下: 原生打开html → html打开原生 → 原生打开html ,这样无限的相互跳转,该怎么弄啊,已经快绝望了。

有没有人指导下思路!

2017-08-23 09:49 1 条评论 负责人:无 分享
已邀请:
猫猫猫猫

猫猫猫猫 - 用户已离线

还有一个比较麻烦的问题是显示层级问题,webview属于view在5+runtime的activity内,不能显示在另外一个activity之上,要在activity打开一个新的5+webveiw容易,如果还要显示在当前activity之上,还需要控制当前activity隐藏,但是另外一个webview回退的时候当前activity还得再显示。
如果主逻辑在js内,那就要由js来负责记录这个。


思路如下:
js逻辑为主,原生页面跳转采用插件方式(或者native.js)调用。js记录跳转历史(push页面对象到一个数组里),根据对象类型,每次回退采取不同方案。

  • 答非所问 (作者)

    没注意,评论给下面的人了 - -

    2017-08-23 10:59

答非所问

答非所问 (作者)

也是,我看社区很多人问,但是没多少解决了的,简直混不下去

  • 猫猫猫猫

    人人都是平等的,有些人没帮别人解决过问题,还他妈感叹别人不帮自己解决问题。

    2017-08-23 11:04

Macking

Macking - 程序熊

dcloud 社区果然是很冷清啊。
看了那么多问答,基本都是只有“问”而无真正意义上的“答”
然后居然还出现了各种“html5及h5+难题付费解决”
框架“开源”了,但社区却是“闭源”的
苦了像我这种前端小白。。可叹啊。。。

  • 答非所问 (作者)

    使用widget方式集成就是这点不好,只能创建一次。


    目前我原生跳转html,是用原生调用js去打开新页面,然后原生使用intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT)跳转到webview的Activity,这样可以把webview的Activity提到栈顶显示,但是一后退的话就玩完了,得自己去记录跳转顺序。


    而且如果像我上面说的无限跳转下去,我的天!,我都不敢想该怎么玩下去。。。

    2017-08-23 10:56

  • 猫猫猫猫

    回复 答非所问:是的,需要记录顺序,做页面管理。

    2017-08-23 11:00

  • 猫猫猫猫

    这也是没用办法的,这个问题比较难,难到要解决此问题需要全职干个一两天,谁会为了陌生人,和老板请假来干一两天?

    2017-08-23 11:01

  • 答非所问 (作者)

    @33021 html管理一套,原生管理一套,然后还要记录交叉点,我想着就直接懵逼

    2017-08-23 11:03

  • 猫猫猫猫

    回复 答非所问:如果html为主(第一个页面)就集中在html里,如果原生为主就集中在原生里来管理。

    2017-08-23 11:08

  • 答非所问 (作者)

    还是在原生管理比较好,毕竟activity顺序为重

    2017-08-23 11:14

该问题目前已经被锁定, 无法添加新回复