3

Google が提供する app indexing API を実装しています。ここに示されているように、次のように onStart() メソッドでクライアントを接続しました。

APP_URI = Uri.parse(baseAppUri + slug);
    WEB_URL = Uri.parse(baseWebUri + slug);
    Action viewAction = Action.newAction(Action.TYPE_VIEW, title, WEB_URL, APP_URI);

    // Call the App Indexing API start method after the view has
    // completely
    // rendered
    // Call the App Indexing API view method
    PendingResult<Status> result = AppIndex.AppIndexApi.start(mClient, viewAction);

    result.setResultCallback(new ResultCallback<Status>() {
        @Override
        public void onResult(Status status) {
            if (status.isSuccess()) {
                CommonLib.ZLog(TAG, "App Indexing API: Recorded " + title + " view successfully.");
            } else {
                Log.e(TAG, "App Indexing API: There was an error recording the view." + status.toString());
            }
        }
    });

ユーザーがページで完了した後、つまりユーザーが戻るボタンを押した後、次のように onStop() で AppIndexApi.end を呼び出します。

@Override
protected void onStop() {

    // Call end() and disconnect the client
    Action viewAction = Action.newAction(Action.TYPE_VIEW, title, APP_URI);
    PendingResult<Status> result = AppIndex.AppIndexApi.end(mClient, viewAction);

    result.setResultCallback(new ResultCallback<Status>() {
        @Override
        public void onResult(Status status) {
            if (status.isSuccess()) {
                Log.d(TAG, "App Indexing API: Recorded " + title + " view end successfully.");
            } else {
                Log.e(TAG, "App Indexing API: There was an error recording the  view." + status.toString());
            }
        }
    });

    mClient.disconnect();
    super.onStop();

}

問題は、コールバックが実行されていないことです。resultcallback のどのケースもステータスを記録しておらず、実行は直接ジャンプしますmClient.disconnect.

また、Google アプリの検索結果にタイトルが表示されません。

ここでどこが間違っているのでしょうか?

4

1 に答える 1