全部产品
云市场
云游戏

管理 H5 页面

更新时间:2019-09-12 17:15:26

打开 H5 离线包后,您可以对 H5 页面进行以下管理操作:

启动全屏的容器传参

  1. Bundle param = new Bundle();
  2. // 要打开的离线包 URL /www/index.html,必须加 /
  3. // 如果不传 URL,容器将默认打开离线包配置的 URL,建议不要传 URL,只传 appId,前端就可以自己配置打开的页面
  4. param.putString(H5Param.LONG_URL,url);
  5. LauncherApplicationAgent.getInstance().
  6. getMicroApplicationContext().startApp(null, appId, param);
  7. // 如果是单独接容器的客户端,才使用 h5Service.startPage 的方式
  8. public static final void openH5(String url) {
  9. if (TextUtils.isEmpty(url)) {
  10. return;
  11. }
  12. H5Service h5Service = LauncherApplicationAgent.getInstance().getMicroApplicationContext()
  13. .findServiceByInterface(H5Service.class.getName());
  14. H5Bundle bundle = new H5Bundle();
  15. Bundle param = new Bundle();
  16. // 要打开的离线包 appId
  17. param.putString(H5Param.APP_ID, appId);
  18. // 要打开的离线包 URL /www/index.html,必须加 /
  19. // 如果不传 URL,容器将默认打开离线包配置的 URL,建议不要传 URL,只传appId,前端就可以自己配置打开的页面
  20. param.putString(H5Param.LONG_URL,url);
  21. bundle.setParams(param);
  22. if (h5Service != null) {
  23. h5Service.startPage(AlipayApplication.getInstance().getMicroApplicationContext().findTopRunningApp(),
  24. bundle);
  25. }
  26. }

将单个容器的视图嵌入到页面

根据您的实际情况选择以下方法将单个容器的视图(view)嵌入到 H5 页面中:

提示:使用异步方法不占用主线程,不会影响性能。

同步方法

  1. public static final void openH5(String url) {
  2. if (TextUtils.isEmpty(url)) {
  3. return;
  4. }
  5. H5Service h5Service = LauncherApplicationAgent.getInstance().getMicroApplicationContext()
  6. .findServiceByInterface(H5Service.class.getName());
  7. H5Bundle bundle = new H5Bundle();
  8. Bundle param = new Bundle();
  9. // 要打开的离线包 appId
  10. param.putString(H5Param.APP_ID, appId);
  11. // 要打开的离线包内的 URL /www/index.html,必须加 /
  12. // 如果不传 URL,容器将默认打开离线包默认配置的 URL
  13. param.putString(H5Param.LONG_URL,url);
  14. bundle.setParams(param);
  15. if (h5Service != null) {
  16. H5Page h5Page=h5Service.createPage(activity,bundle);
  17. View view=h5Page.getContentView(),
  18. // view 最后添加到自己的页面中就行
  19. }
  20. }

异步方法

  1. H5Service h5Service = LauncherApplicationAgent.getInstance().getMicroApplicationContext()
  2. .findServiceByInterface(H5Service.class.getName());
  3. H5Bundle bundle = new H5Bundle();
  4. Bundle param = new Bundle();
  5. param.putString(H5Param.APP_ID, appId);
  6. param.putString(H5Param.LONG_URL, url);
  7. bundle.setParams(param);
  8. if (h5Service != null) {
  9. h5Service.createPageAsync(activity, bundle, h5PageReadyListener);
  10. }