繁体   English   中英

Android:对话框内的webView,未加载URL

[英]Android : webView inside Dialog, URL is not getting loaded

所以我正在尝试使用webview在Dialog中加载URL。 我也在清单文件中设置了Internet权限。 但网址未加载。 我不知道怎么了。 我也尝试过这种解决方案。

编辑:Internet连接不是问题,因为我能够从模拟器浏览器浏览Google。 activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity" >
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:textSize="25sp"
        android:text="Reddit OAuth2" />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:id="@+id/auth"
        android:text="Sign in with Reddit" />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/Access"
        android:autoLink="all"
        android:textIsSelectable="true"
        android:layout_gravity="center"
        android:textSize="10sp"/>

</LinearLayout>

auth_dialog.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<WebView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/webv"/>

</LinearLayout>

MainActivity.java

public class MainActivity extends AppCompatActivity {

WebView web;
Button auth;
SharedPreferences pref;
TextView Access;
Dialog auth_dialog;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Access =(TextView)findViewById(R.id.Access);
    auth = (Button)findViewById(R.id.auth);
    auth.setOnClickListener(new View.OnClickListener() {
       @Override
       public void onClick(View arg0) {
           // TODO Auto-generated method stub
           auth_dialog = new Dialog(MainActivity.this);
           auth_dialog.setContentView(R.layout.auth_dialog);
           web = (WebView) auth_dialog.findViewById(R.id.webv);
           web.getSettings().setJavaScriptEnabled(true);

            web.loadUrl("http://www.google.com");

           web.setWebViewClient(new WebViewClient() {
               @Override
               public boolean shouldOverrideUrlLoading(WebView view, String url) {
                   view.loadUrl(url);
                   return true;
               }

           });
           auth_dialog.show();
           auth_dialog.setTitle("Authorize");
           auth_dialog.setCancelable(true);
             }
             });

  }
   }

我得到的输出:

这是我得到的输出。

您应该将shouldOverrideUrlLoading设置为返回false。 现在您的代码正在使用内置浏览器而不是Webview来加载URL

        web.setWebViewClient(new WebViewClient() {
           @Override
           public boolean shouldOverrideUrlLoading(WebView view, String url) {

               return false;
           }

       });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM