非常に興味深い問題があります。私はAndroidアプリケーションの中でinAppBrowserとスピナーを使用しています。 SpinnerはProgressDialog
で実装されています。ここで問題となるのは、inAppBrowserを介してWebページを開こうとすると、ローディングスピナーが読み込みを開始した後に読み込みを開始し、ページの読み込みが終了したら、そのページの入力フィールドをタップして文字や数字を入力すると、いわゆる「ロックされた」状態にとどまります。私が何かをタイプすると、私はそれらを見ることができません、カーソルはちょうど点滅し続けます。これはさらに奇妙なようにするにInAppBrowserとスピナーローディングでページを読み込んだ後に入力フィールドに入力できません
、私は特別な文字を入力することができますよ。ページの周りの他の場所にタップして、同じ入力フィールドに再度タップすると、それが機能します。別のケースでは、アプリケーションを一時停止状態にしてから再開すると、入力フィールドが機能します。
この問題は、バージョン5.0.1以上のAndroidプラットフォームでのみ発生します。
inAppBrowser JavaファイルはInAppBrowser java fileでGithubの中に見つけることができます。
マイスピナーの実装は以下の通りです:
spinner = new ProgressDialog(cordova.getActivity());
spinner.setIndeterminate(false);
spinner.setProgressStyle(ProgressDialog.STYLE_SPINNER);
spinner.setCancelable(false);
spinner.setMessage(cordova.getActivity().getText(R.string.spinner_loading));
spinner.setTitle("");
を、私は/には、以下の方法でスピナー隠す:
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
//InAppBrowser default code....
try {
JSONObject obj = new JSONObject();
obj.put("type", LOAD_START_EVENT);
obj.put("url", newloc);
sendUpdate(obj, true);
} catch (JSONException ex) {
Log.d(LOG_TAG, "Should never happen");
}
spinner.show();
}
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
try {
JSONObject obj = new JSONObject();
obj.put("type", LOAD_STOP_EVENT);
obj.put("url", url);
sendUpdate(obj, true);
} catch (JSONException ex) {
Log.d(LOG_TAG, "Should never happen");
}
spinner.hide();
}
ここで問題になる可能性が何を?任意のヒント、提案をいただければ幸いです。
Chromeのインスペクタを使用してデバイスでアプリをデバッグし、コンソールにエラーがないかどうか確認できますか? – Gandhi
@ガンジー:私はすでにコメントしました。 –