我在我的应用程序索引功能工作,并遵循谷歌开发者指南。我从指南中粘贴了以下内容:
// Create App Indexing Link objects
AppIndexingLink item1 = new AppIndexingLink(appUri1, webUrl1, this.findViewById(R.id.btn1));
AppIndexingLink item2 = new AppIndexingLink(appUri2, webUrl2, this.findViewById(R.id.btn2));
从上面的语句中,我们可以注意到参数。
My Query on this:
- 在那个文档中,他们提到web URL是可选的。但当我删除,给出编译错误,如果我使它为空(")给出NullPointerException(不确定空导致NullPointerException)
2。btn1和btn2,我们从哪里得到它们?我们为什么要把它们放在那里?. 如果我从我的项目中给出任何视图产生NullPointerException(这是使我不确定第一个的情况)。
如果任何一个有教程和示例代码,使应用程序索引,请提供它。
1-webUrl1是一个Uri类型的对象,你需要在使用你的google play url前解析一些url
2-btn1和btn2可以是用户正在查看的任何视图,例如图像视图或包含一些文本的文本视图
试试这个更简单的方法来集成appindex。
添加intentFilter到任何将要处理Appindex的activity,
<intent-filter >
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http"
android:host="www.yoursite.com"
android:pathPrefix="/"
/>
</intent-filter>
之后在这个activity的oncreate中你可以使用
Uri data = getIntent().getData();
这个数据将给出完整的url登陆到你的应用程序。
System.out.println("Data URL: "+data);
你也可以用这个uri数据来获取主机名。
if(data!=null)
{
String tmpData = data.toString();
String hostName = data.getHost();
}
确保你已经做了网站管理员工具的网站验证之前,你使应用程序的生活。