2017-01-31 2 views
-2

Я создал приложение WebView, основанное на URL-адресе, таком как website.some, мне поделилась почтовая ссылка, например website.some/post_name /, к моим frnds, когда они открывают эту ссылку через мое приложение для веб-просмотра, не открывают напрямую ссылку на страницу, он открывает только ссылку на главную страницу моего сайта (wesite.some). i хочу, чтобы это действие, например, Snapdeal или flipkart, открывало страницу в моем приложении для веб-просмотра. пожалуйста помогите.Как открыть одинаковые URL-адреса сайта в приложении WebView напрямую?

Основная деятельность как этот

public class MainActivity extends AppCompatActivity 
    implements NavigationView.OnNavigationItemSelectedListener { 

private WebView wv; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 
    wv = (WebView) findViewById(R.id.webView1); 
    WebSettings settings = wv.getSettings(); 
    settings.setJavaScriptEnabled(true); 
    wv.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH); 
    wv.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE); 
    wv.getSettings().setAppCacheEnabled(false); 
    wv.getSettings().setAllowFileAccess(true); 
    wv.getSettings().setSupportMultipleWindows(true); 
    wv.getSettings().setJavaScriptCanOpenWindowsAutomatically(true); 
    wv.getSettings().setLoadWithOverviewMode(true); 
    wv.getSettings().setUseWideViewPort(true); 
    wv.getSettings().setBuiltInZoomControls(true); 
    wv.getSettings().setDisplayZoomControls(false); 
    wv.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY); 
    settings.setDomStorageEnabled(true); 
    settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS); 
    settings.setUseWideViewPort(true); 
    settings.setSavePassword(true); 
    settings.setSaveFormData(true); 
    wv.loadUrl("http://website.some/"); 
    wv.setWebViewClient(new MywebViewClient()); 
} 

@Override 
public void onBackPressed() { 
    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
    if (drawer.isDrawerOpen(GravityCompat.START)) { 
     drawer.closeDrawer(GravityCompat.START); 
    } else { 
     super.onBackPressed(); 
    } 
} 

private class MywebViewClient extends WebViewClient { 
    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     if (Uri.parse(url).getHost().equals("website.some/")){ 
      return false; 
     } 
     return false; 
    } 
    ProgressDialog pd = null; 

    @Override 
    public void onPageStarted(WebView view, String url, Bitmap favicon) { 
     pd = new ProgressDialog(MainActivity.this); 
     pd.setTitle("please wait..."); 
     pd.setMessage("Page is loading.."); 
     pd.show(); 
     super.onPageStarted(view, url, favicon); 
    } 

    @Override 
    public void onPageFinished(WebView view, String url) { 
     pd.dismiss(); 
     super.onPageFinished(view, url); 
    } 
} 

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if(event.getAction()== KeyEvent.ACTION_DOWN){ 
     switch(keyCode){ 
      case KeyEvent.KEYCODE_BACK: 
       if(wv.canGoBack()){ 
        wv.goBack(); 
       } 
       else{ 
        finish(); 
       } 
       return true; 
      } 
     } 
     return super.onKeyDown(keyCode, event); 
    } 
} 

ответ

0

Попробуйте это.

@Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     if (Uri.parse(url).getHost().contains("website.some")){ 
      view.loadUrl(url); //optional 
      return false; 
     } 
     return true; 
    } 
+0

Не работает ....... –

0

mustOverrideUrlLoading метод, вызываемый при изменении URL-адреса внутри onPageFinished.

 @Override 
     public void onPageFinished(WebView view, String url) 
     { 
       super.onPageFinished(view, url); 
     } 

     @Override 
     public boolean shouldOverrideUrlLoading(WebView viewx, String url) 
     { 
       if (url.contains("websiteLink")) 
       view.loadUrl(url); 

      return false; 
     } 
+0

Не работает ...... –

Смежные вопросы