問題タブ [android-chrome]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
13 に答える
19687 参照

android - Android - Android 7.0 以降で WebView 言語が突然変更される

第一言語が英語で第二言語がアラビア語の多言語アプリがあります。

ドキュメントに記載されているように、

  • android:supportsRtl="true"マニフェストに追加しました。
  • leftおよびright属性を持つすべての xml プロパティをそれぞれ および に変更しstartましendた。
  • アラビア語の文字列を追加しましたstrings-ar(他のリソースについても同様です)。

上記のセットアップは正常に機能します。を に変更するLocalear-AE、アクティビティにアラビア語のテキストとリソースが正しく表示されます。

ただし、および/またはActivityを使用してに移動するたびに、ロケール、テキスト、およびレイアウトの方向が突然デバイスのデフォルトに戻ります。WebViewWebViewClient

さらなるヒント:

  • これは、 Android 7.0を搭載した Nexus 6P でのみ発生します。Android 6.0.1 以下ではすべて正常に動作します。
  • ロケールの突然のシフトは、および/またはを含む に移動した場合にのみ発生します(そして、いくつかあります)。他のアクティビティでは発生しません。ActivityWebViewWebViewClient

Android 7.0 ではマルチロケールがサポートされているため、ユーザーは複数のデフォルト ロケールを設定できます。したがって、プライマリロケールを次のように設定するとLocale.UK:

ここに画像の説明を入力

次に に移動するとWebView、ロケールが からar-AE に変わりますen-GB

Android 7.0 API の変更:

API 変更のリスト に示されているように、ロケールに関連する新しいメソッドが API 24 の次のクラスに追加されました。

Locale:

Configuration:

ただし、API 23 を使用してアプリを構築しており、これらの新しいメソッドは使用していません。

さらに ...

  • この問題は、Nexus 6P エミュレーターでも発生します。

  • デフォルトのロケールを取得するために、私はLocale.getDefault().

  • デフォルトのロケールを設定するために、次のコードを使用しています。

    /li>

以前にこの問題に遭遇した人はいますか? その理由は何ですか?どうすれば解決できますか?

参考文献:

1. Android 4.2 でのネイティブ RTL サポート

2. 多言語サポート - 言語とロケール

3. デフォルトのロケールに注意してください

0 投票する
1 に答える
2832 参照

javascript - ユーザーが Android のネイティブ セレクターをキャンセルすると、navigator.share が解決または拒否されない

そのため、Ionic v3 PWA でnavigator.share()( https://developers.google.com/web/updates/2016/09/navigator-share )を実装しています。

それは機能しますが、修正方法がわからない小さな問題が発生しました: navite 共有セレクターがポップアップし (ユーザーは受信トレイ、gmail、twitter などを選択できます)、ユーザーは Android の戻るボタンを押します。 (出てきたネイティブモーダルを却下する)、関数は約束の応答をトリガーしません。成功ではなく、エラーではありません。

ここでの問題は、navigator.share 関数を呼び出す前にローディング スピナーを表示し、ユーザーがその正確な瞬間に戻るボタンを押した場合、ローディング スピナーを非表示にする関数をトリガーできないことです。

これは、機能を実装するコードの一部です。

この実装では、ネイティブ共有モーダルが表示されたときにユーザーが戻るボタンを押しても、成功またはエラーはスローされません。このコードに何か問題がありますか?

.then()次のように、関数内に別のコールバック関数を追加することも試みました.then(successFn, errorFn)。も呼び出されることはerrorFnありません。

御時間ありがとうございます。-