私は、システムに自分のUrlを処理するように依頼する代わりに、新しいアクティビティを作成しました。これに代えて :活動の
<?xml version="1.0" encoding="utf-8"?>
<WebView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/webview"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
いくつかのコード:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_webview);
webView = (WebView) findViewById(R.id.webview);
webView.loadUrl(LOGIN_URL);
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
if (url.startsWith(LOGIN_REDIRECT_URI)) {
view.stopLoading();
AlertDialog.Builder builder = new AlertDialog.Builder(R2AuthorizationActivity.this);
builder.setView(R.layout.layout_webview_overlay);
builder.setPositiveButton("CANCEL", null);
// CREATE ALERT DIALOG
alertDialog = builder.create();
alertDialog.show();
doStuffWithParameterAndCallFinish(Uri.parse(url).getQueryParameter("code"));
} else
super.onPageStarted(view, url, favicon);
}
});
}
void finish(boolean success) {
alertDialog.cancel();
setResult(success ? Activity.RESULT_OK : Activity.RESULT_CANCELED);
finish();
}
startActivityForResult(new Intent(R2App.getContext(), R2AuthorizationActivity.class), 1234);
このアクティビティでは、内部の1つのWebViewで構成されています
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(LOGIN_URL));
startActivity(i);
私は今、このコードを持っています
layout_webview_overlay.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/activityBackground"
android:orientation="horizontal"
android:padding="20dp">
<ProgressBar
android:id="@+id/loading_spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="10dp"
android:indeterminateTint="@color/accent"
android:indeterminateTintMode="src_atop"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="10dp"
android:text="Authorizing ..."
android:textColor="@color/white"/>
</LinearLayout>
私はAndroidの開発者ではありませんが、redditに投稿してみましたか?/r/redditdevまたは/ r/androiddevに関するヘルプがあります。 –
実際に私が持っているが、r/androiddevは私がstackoverflowに投稿する必要があると言います。それにもかかわらず、私の問題はAndroidともっと関係していると思いますし、Reddit固有ではありません。 – MehmetGunacti
問題を一般化すると役立ちます。レッドでないアプリで問題を再現できるかどうかを確認し、重複する箇所を見つけてください。 –