如何使用库项目实现应用程序索引?
How to implement app indexing with library project?
我正在尝试为我的一个应用程序实现应用程序索引,但我不太确定我应该 return 作为应用程序索引 appUri
Action
.
假设我有一个包名 com.example.myapp
和 webUri
http://example.com/some/path
.
据我了解,在这种情况下 appUri
通常是 com.example.myapp/http/example.com/some/path
,对吗?
现在输入我的应用程序使用的库项目,以及索引 activity 所在的位置。我们调用库项目 com.example.mylibrary
和索引 activity MyActivity
.
如果我想使用 adb 启动 activity,我会使用
adb shell am start -W -a android.intent.action.VIEW -d "http://example.com/some/path" com.example.myapp/com.example.mylibrary.MyActivity
所以,我的问题是 - 在这种情况下,应用程序索引 Action
的 appUri
应该是什么?它是否受到 activity 在库项目中的影响?
一般来说,你可以通过库提供的Action.Builder来构建Action。作为 uri,您需要提供相关的 URI。因此,如果您想索引 View Action,您应该提供已查看的产品的 URI。
Uri.Builder builder = new Uri.Builder();
String uriStr = builder
.scheme("http")
.authority("example.com")
.appendPath("some/path").build().toString();
Action action = new Action.Builder(Action.Builder.VIEW_ACTION)
.setObject("productName", uriStr)
.build();
有关详细信息,您可以查看 logging actions docs 及其示例应用程序。
测试:
adb shell am start -a android.intent.action.VIEW -d "{URL}" {package name}
其中 {包名称} = com.example.myapp 和 URL = http://example.com/some/path
最后,你放在库中的 Activity 应该有可以处理你的 URI 的意图过滤器 http://example.com/some/path
我正在尝试为我的一个应用程序实现应用程序索引,但我不太确定我应该 return 作为应用程序索引 appUri
Action
.
假设我有一个包名 com.example.myapp
和 webUri
http://example.com/some/path
.
据我了解,在这种情况下 appUri
通常是 com.example.myapp/http/example.com/some/path
,对吗?
现在输入我的应用程序使用的库项目,以及索引 activity 所在的位置。我们调用库项目 com.example.mylibrary
和索引 activity MyActivity
.
如果我想使用 adb 启动 activity,我会使用
adb shell am start -W -a android.intent.action.VIEW -d "http://example.com/some/path" com.example.myapp/com.example.mylibrary.MyActivity
所以,我的问题是 - 在这种情况下,应用程序索引 Action
的 appUri
应该是什么?它是否受到 activity 在库项目中的影响?
一般来说,你可以通过库提供的Action.Builder来构建Action。作为 uri,您需要提供相关的 URI。因此,如果您想索引 View Action,您应该提供已查看的产品的 URI。
Uri.Builder builder = new Uri.Builder();
String uriStr = builder
.scheme("http")
.authority("example.com")
.appendPath("some/path").build().toString();
Action action = new Action.Builder(Action.Builder.VIEW_ACTION)
.setObject("productName", uriStr)
.build();
有关详细信息,您可以查看 logging actions docs 及其示例应用程序。
测试:
adb shell am start -a android.intent.action.VIEW -d "{URL}" {package name}
其中 {包名称} = com.example.myapp 和 URL = http://example.com/some/path
最后,你放在库中的 Activity 应该有可以处理你的 URI 的意图过滤器 http://example.com/some/path