Bazaarvoice移动sdk提供了对Bazaarvoice提供的大多数核心产品的访问。必威手机版本要了解更多信息,请参阅Mobile SDK文档主页

内容

+显示 ——隐藏

本文档解释了如何使用移动SDK显示消费者生成的内容(CGC),包括评论和统计数据以及产品信息。

简介

使用Bazaarvoice移动sdk来启用对话功能,例如评分和评论。的对话模块提供了易于使用的包装器API的对话.联系Bazaarvoice建立对话。

你需要你的apiKeyConversations实现和使用移动sdk的对话。

安装说明

与它

包括Maven中央存储库,并将适当的Bazaarvoice Mobile SDK模块添加到您的依赖项中:

依赖{实现` com.bazaarvoice.bvandroidsdk:对话:{BV_SDK_VERSION}。+“执行”com.google.android.gms:play-services-ads:9。{YOUR_PLAY_SERVICES_VERSION}' implementation 'com.android.support:recyclerview-v7:25。{YOUR_SUPPORT_LIBRARY_VERSION}实现。bvandroidsdk: conversations-ui: {BV_SDK_VERSION}。+'}存储库{mavenCentral()}

取代{令牌},包括括号,并加上适当的值。请参阅安装指南{BV_SDK_VERSION}

扩展应用程序

创建一个可扩展的类android.app.Application,并使用其构建器初始化Mobile SDK。

中可以找到构建选项的完整列表BVSDK.java

公共类MyApplication扩展Application{@覆盖公共无效onCreate(){super.onCreate();BVSDK。builder(application, bazaarenenvironment . production) . loglevel (BVLogLevel.VERBOSE) //可选:设置日志级别。. dryrunanalytics (false) //可选:只设置分析为日志,不发起网络请求。.okHttpClient(okHttpClient) //可选:使用您自己的okHttpClient实例.build();}}

应用程序清单文件

将以下内容添加到您的AndroidManifest.xml文件。

<!——为应用程序条目设置类的名称——>  < /应用程序>

使用对话显示API

安装Mobile SDK后,您可以参考下面的指南,使用API和Conversations UI容器一次性显示多个产品的产品评论统计数据、评论、问题、答案和批量评级。必威手机版本

如果您需要检查以下API的可能参数列表,请参考以下链接并从部分内容中选择API:

BVConversationsClient

使用Bazaarvoice ViewGroup类使所有的对话显示API请求。

正在加载产品显示页面

显示产品显示页面时,使用ProductDisplayPageRequest获取有用的数据reviewStatistics或者包括前10个审查评论。

首先,让我们看一个简单的ProductDisplayPageRequest

//请求产品信息,包括评论和问题/答案的统计数据。ProductDisplayPageRequest request = new ProductDisplayPageRequest. builder ("test1") .addIncludeStatistics(PDPContentType.Reviews) .addIncludeStatistics(PDPContentType.Questions) .build();

在上面的代码中,aProductDisplayPageRequest为productIdtest1.我们还包括评论和问题/答案的统计数据。您可能希望在其中包含一些实际内容,如下所示。我们还根据他们的提交时间对所包含的评论进行排序。

//请求产品信息,包括评论和问题/答案的统计数据。ProductDisplayPageRequest request = new ProductDisplayPageRequest. builder ("test1") . addinclecontent (PDPContentType. txt)。评论,10). addinclecontent (PDPContentType)。问题,5). addreviewsort (ReviewOptions.Sort。提交时间,SortOrder.DESC) .build();

让我们加载这个请求!

为此,将请求传递给您的BVConversationsClient实例,如下所示。

BVConversationsClient客户端= new BVConversationsClient. builder (BVSDK.getInstance()).build();//使用一个实例client.prepareCall(request)。loadAsync(new ConversationsCallback() {@Override public void onSuccess(ProductDisplayPageResponse response){//调用主线程response. getresults ();//包含产品}@覆盖公共无效onFailure(BazaarException异常){//在主线程调用}});

加载更多评论

如前所述,您应该使用ReviewsRequest加载用户将看到的CGC的第一页(最多20个项目)。加载评论时,您应该请求并显示评论BVUiReviewsRecyclerViewBVUiReviewsContainerView容器:

BVConversationsClient客户端= new BVConversationsClient. builder (BVSDK.getInstance()).build();//使用一个实例ReviewsRequest ReviewsRequest = new ReviewsRequest。Builder("test1", 10,20).build();reviewsRecyclerView = (BVUiReviewsRecyclerView) findViewById(R.id.my_reviews_recycler_view);reviewsRecyclerView.loadAsync(client.prepareCall(reviewsRequest), new ConversationsCallback() {@Override public void onSuccess(ReviewResponse response){//调用在线程response. getresults ();//包含评论}@覆盖公共无效onFailure(BazaarException异常){//在主线程调用}});

一个ReviewsRequest需要三个参数:

  • productId-您想要评论的productId

    primaryFilter而且~ Id-也就是说,你可以使用primaryFilter来获得作者的评论。AuthorId和作者的Id。有效的primaryFilters包括IdAuthorIdProductIdSubmissionId,CategoryAncestorId
  • 限制-可获取的最大评论数量(最多20条)
  • 抵消-开始的索引

应该使用限制和偏移量的组合来根据用户的请求加载更多的评论页面。

你可以为请求添加过滤器和排序,如下所示:

ReviewsRequest request = new ReviewsRequest。Builder("test1", 10,0) . addfilter (ReviewOptions.Filter. filter)HasPhotos EqualityOperator。EQ, "") . addsort (ReviewOptions.Sort。评级,SortOrder.DESC) .build();

加载评论只需调用所选评论视图容器上的loadAsync()方法,如上面所示。

显示评分和评论

多个检查应该显示在以下容器视图之一中:

  • BVUiReviewsRecyclerView
  • BVUiReviewsContainerView

每个评论应该显示使用ReviewView

加载更多的问题和答案

与回顾类似,您应该使用QuestionAndAnswerRequest以载入问答的第一页(最多20个问题)。加载问题时,应在BVUiQuestionsRecyclerViewBVUiQuestionsContainerView容器:

BVConversationsClient客户端= new BVConversationsClient. builder (BVSDK.getInstance()).build();使用一个实例QuestionAndAnswerRequest questionsRequest = new QuestionAndAnswerRequestBuilder("test1", 10,20).build();questionsRecyclerView = (BVUiQuestionsRecyclerView) findViewById(R.id.my_questions_recycler_view);questionsRecyclerView.loadAsync(client.prepareCall(questionsRequest), new ConversationsCallback() {@Override public void onSuccess(QuestionAndAnswerResponse response){//调用在线程response. getresults ();} @覆盖公共无效onFailure(BazaarException异常){//在主线程调用}});

一个QuestionsAndAnswersRequest需要与a相同的三个参数ReviewsRequest

  • productId -您想要提问的productId
  • Limit -获取问题的最大数量(最多20个)
  • 偏移量-开始的索引

应该使用限制和偏移量的组合来根据用户的请求加载更多页的问题。

你可以为请求添加过滤器和排序,如下所示:

QuestionsAndAnswersRequest请求=新的QuestionsAndAnswersRequest。Builder("test1", 10,0) . addfilter (QuestionOptions.Filter)HasPhotos EqualityOperator。EQ, "") . addquestionsort (QuestionOptions.Sort。TotalAnswerCount, SortOrder.DESC) . addanswersort (AnswerOptions.Sort. desc)。提交时间,SortOrder.ASC) .build();

显示问题和答案

问题和答案应该显示在以下容器视图之一:

  • BVUiQuestionsRecyclerView
  • BVUiQuestionsContainerView
  • AnswersRecyclerView
  • AnswersContainerView

每个问题都应该用QuestionView,并且每个答案都应该使用AnswerView

加载评审意见

注释可以通过单个注释ID加载,也可以通过带有limit和offset参数的评审ID加载注释。简单地构造一个CommentsRequest对象,并选择提供的默认构造函数之一。下面提供的示例演示了如何从给定的评论ID获取评论列表。

BVConversationsClient客户端= new BVConversationsClient. builder (BVSDK.getInstance()).build();//使用一个实例CommentsRequest request = new CommentsRequest。Builder(reviewId, 20,0) //添加其他可选参数。addincludetype . SUBMISSION_TIME, SortOrder.DESC) . addincludetype。必威手机版本产品,99). addfilter (CommentOptions.Filter)。CONTENT_LOCALE EqualityOperator。EQ, "en_US") .build();client.prepareCall(请求)。loadAsync(new ConversationsCallback(){@覆盖公共无效onSuccess(CommentsResponse响应){//成功响应,获取注释并绘制您的UI} @覆盖公共无效onFailure(BazaarException异常){//在这里添加您的错误处理逻辑}});

显示批量评级

若要在类别页面上显示产品评级统计信息,请使用BulkRatingsRequest.例如,在这样一个分类页面上:

获得每个产品的评级统计数据可以通过以下单个请求完成:

列表
                   productIds =数组。asList("test1", "test2", "test3", "test4");BulkRatingsRequest request = new BulkRatingsRequest .Builder(productIds, bulkratingoptions . statstye . all).build();

可以加载:

BVConversationsClient客户端= new BVConversationsClient. builder (BVSDK.getInstance()).build();//使用一个实例client.prepareCall(request)。loadAsync(new ConversationsCallback() {@Override public void onSuccess(BulkRatingsResponse response){//在Main Thread上调用(Statistics stats: response. getresults ()) {String productId = "";Float av光栅= Float. nan;整数totalReviewCount = 0;必威手机版本productStats = stats.getProductStatistics();if (必威手机版本productStats != null) {productId = productStats. getproductid ();reviewStats = productStats.getR必威手机版本eviewStatistics();if (reviewStats != null) {av光栅= reviewStats. getaverageoverallrating ();totalReviewCount = reviewStats.getTotalReviewCount(); } } String msg = String .format("productId: %s, avgRating: %f, totalReviewCount: %d", productId, avgRating, totalReviewCount); Log.d("BulkRatings", msg); } } @Override public void onFailure(BazaarException exception) { //called on Main Thread Log.e("BulkRatings", "Failed to get bulk ratings", exception); } });

显示作者简介

徽章显示

请注意,对话API不会返回图像链接。Conversation API客户端的显示取决于客户端的创造性解释。有关更多信息,请参阅对话开发人员徽章文件

要显示Authors配置文件,请使用AuthorsRequest.例如:

AuthorsRequest request = new AuthorsRequest. builder ("authorId") . addinclecontent (AuthorIncludeType. builder)。评论,10). addincludetype (AuthorIncludeType)。问题,11). addincludetype (AuthorIncludeType)。答案,12). addincludetype (AuthorIncludeType)。注释,12). addreviewsort (ReviewOptions.Sort。SubmissionTime, SortOrder.DESC) . addquestionsort (QuestionOptions.Sort. desc)addanswersort (AnswerOptions.Sort. desc)。AuthorId,SortOrder.DESC) .addIncludeStatistics(AuthorIncludeType.REVIEWS) .addIncludeStatistics(AuthorIncludeType.QUESTIONS) .addIncludeStatistics(AuthorIncludeType.ANSWERS) .build();

可以加载:

BVConversationsClient客户端= new BVConversationsClient. builder (BVSDK.getInstance()).build();//使用一个实例client.newCall(request)。排队(新ConversationsCallback
                   () {@Override public void onSuccess(AuthorsResponse response) {if (response. gethaserrors()){//处理API请求错误返回;}列表
                    authors = response.getResults();if (authors.size() > 0) {Author Author = authors.get(0);//使用作者对象}}@覆盖公共无效onFailure(BazaarException异常){exception. printstacktrace ();});
                  

加载回顾要点

通过指定产品ID和客户端ID加载审查重点(优点和缺点)。

ReviewHighlightsRequest request = new ReviewHighlightsRequest. builder ("productId").build();BVConversationsClient client = new BVConversationsClient. builder (BVSDK.getInstance()).build(); //使用一个实例client. preparecall (request)。loadAsync(new ConversationsDisplayCallback() {@Override public void onSuccess(ReviewHighlightsResponse response) {List< reviewhighlight> positive = response. getreviewhighlights ().getPositives();List negative = response.getReviewHighlights().getNegatives();for (ReviewHighlight positive: positive){字符串title = positive.title;// PRO TITLE} for (ReviewHighlight negative: negatives){字符串TITLE = negative. TITLE;// CON TITLE}} @覆盖公共无效onFailure(ConversationsException异常){//处理错误}});

自定义键值对

如果有一些查询参数是SDK不支持的,但你的配置支持,你可以把它添加到一个显示请求,如下所示:

final ReviewsRequest ReviewsRequest = new ReviewsRequest。Builder(productId, limit, offset) .addCustomDisplayParameter("customKey", "customValue") .build();

对话显示:UI容器

为了提供用户交互分析,帮助生成有用的ROI(投资回报)报告,以及更准确的未来建议,您应该在请求和显示review、Questions或Answers时使用sdk提供的视图。

SDK支持以下子类类型的视图容器,这取决于你的偏好:

  • FrameLayout: BVUiReviewsContainerView, answercontainerview, BVUiQuestionsContainerView
  • RecyclerView: BVUiReviewsRecyclerView, answerrecyclerview, BVUiQuestionsRecyclerView

有关使用Reviews、Question和Answers容器的参考实现,请参考SDK中的示例应用程序。