2017-02-19 22 views
1

Я сделал приложение для Android с помощью веб-обозревателя Android. Это приложение на самом деле является мобильным сайтом, который содержит разные курсы.Открытие меню мобильного приложения в браузере - Android

На веб-сайте: Когда я открываю страницу курса, есть курс PDF курса, который при нажатии открывается на новой вкладке.

В приложении для Android При открытии сайта в мобильном приложении, ссылка курса (в меню) сам по себе становится открыт в браузере.

Мое требование состоит в том, чтобы ссылка pdf на странице курса открывалась на новой вкладке.

Ниже приведен код, который я пробовал.

MainActivity.java

package com.education.xxxxxxx; 

import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.Toolbar; 
import android.util.Log; 
import android.view.View; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.webkit.WebSettings; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 

import java.io.UnsupportedEncodingException; 
import java.net.URLEncoder; 

public class MainActivity extends AppCompatActivity { 
    private static final String TAG = ""; 
    private WebView myWebView; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     myWebView = (WebView)findViewById(R.id.webview); 
     WebSettings webSettings = myWebView.getSettings(); 
     webSettings.setJavaScriptEnabled(true); 
//  myWebView.loadUrl("http://xxxxxxx.com/"); 
//  myWebView.setWebViewClient(new WebViewClient()); 
     String myPdfUrl = "http://xxxxxxx.com/"; 
     if(myPdfUrl.endsWith(".pdf")){ 
     String googledocs="https://docs.google.com/viewer?url="; 
     String pdf_url=googledocs+myPdfUrl; 
      myWebView.loadUrl(pdf_url); 
     } 
     else{ 
      myWebView.loadUrl(myPdfUrl); 
     } 

    } 

    @Override 
    public void onBackPressed() { 
     if(myWebView.canGoBack()){ 
      myWebView.goBack(); 
     } else { 
      super.onBackPressed(); 
     } 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     // getMenuInflater().inflate(R.menu.menu_main, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle action bar item clicks here. The action bar will 
     // automatically handle clicks on the Home/Up button, so long 
     // as you specify a parent activity in AndroidManifest.xml. 
     int id = item.getItemId(); 

     //noinspection SimplifiableIfStatement 


     return super.onOptionsItemSelected(item); 
    } 
} 
+0

set webviewClient для просмотра в Интернете, должен быть метод в нем shouldOverrideUrlLoading(), – Redman

+0

Я пробовал это ... но теперь PDF не открывается. – adi

+0

Я не знаю, поддерживает ли webview содержимое с вкладками. По умолчанию: все это открыто только на одной существующей вкладке, основной. Что вы можете сделать, так это открыть PDF внутри нового действия, содержащего другой веб-просмотр. – statosdotcom

ответ

0

WebView не поддерживает вкладки. Все открыто только на одной существующей вкладке, основной. Что вы можете сделать, так это открыть PDF внутри нового действия, содержащего другой WebView.

0

ФПВ обыкновение открыт непосредственно вы можете использовать Google телезрителю DOC

WebView webview = (WebView) findViewById(R.id.webview); 
webview.getSettings().setJavaScriptEnabled(true); 
String pdf = "http://www.adobe.com/devnet/acrobat/pdfs/pdf_open_parameters.pdf"; 
webview.loadUrl("http://drive.google.com/viewerng/viewer?embedded=true&url=" + pdf); 

взглянуть на this

+0

С OP: «страница должна открыться на новой вкладке» .... Тем не менее: OP всегда будет уведомлен вашим ответом, не нужно предупреждать его комментарием, извините. – statosdotcom

+0

@Redman Я пробовал это, но сейчас он не открывает страницу. – adi