OLD | NEW |
| (Empty) |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 package org.chromium.webapk.lib.client; | |
6 | |
7 import android.content.ComponentName; | |
8 import android.content.Context; | |
9 import android.content.Intent; | |
10 import android.net.Uri; | |
11 | |
12 import org.chromium.webapk.lib.common.WebApkConstants; | |
13 import org.chromium.webapk.lib.common.WebApkUtils; | |
14 | |
15 /** | |
16 * NavigationClient provides APIs that A WebAPK host can delegate a WebAPK to lo
ad URL. | |
17 */ | |
18 public class NavigationClient { | |
19 /** | |
20 * Create an Intent to launch a WebAPK and return the Intent to the host. | |
21 * @param webAPKPackageName the package name of the WebAPK to launch. | |
22 * @param callerPackageName the package name of the host. | |
23 * @param urlToNavigate the URL of the WebAPK to navigate. | |
24 */ | |
25 public static Intent createIntentToLaunchWebAPK(String webAPKPackageName, | |
26 String callerPackageName, String urlToNavigate) { | |
27 Intent intent; | |
28 try { | |
29 intent = Intent.parseUri(urlToNavigate, Intent.URI_INTENT_SCHEME); | |
30 } catch (Exception ex) { | |
31 return null; | |
32 } | |
33 intent.setComponent(new ComponentName(webAPKPackageName, | |
34 WebApkConstants.WEBAPK_MAIN_ACTIVITY)); | |
35 intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); | |
36 return intent; | |
37 } | |
38 | |
39 /** | |
40 * When navigation is out of the scope of a WebAPK, the Activity hosted in t
he WebAPK can call | |
41 * this function to create an Intent to ask its host to complete the navigat
ion. | |
42 * @param context a context instance. | |
43 * @param urlToNavigate the URL for the navigation. | |
44 * @param hostLauchActivity the Activity of the host that this Intent is sen
t to. | |
45 */ | |
46 public static Intent createIntentToNavigateBackToHost(Context context, | |
47 String urlToNavigate, String hostLauchActivity) { | |
48 String hostPackageName = WebApkUtils.getHostBrowserPackageName(context); | |
49 Intent intent = new Intent(Intent.ACTION_VIEW); | |
50 intent.setComponent(new ComponentName(hostPackageName, hostLauchActivity
)); | |
51 intent.setData(Uri.parse(urlToNavigate)); | |
52 intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); | |
53 return intent; | |
54 } | |
55 } | |
OLD | NEW |