如何在 android 的 webview 中打开 PPT/Presentation 文件?

How to Open PPT/Presentation file in webview in android?

我有一个 URL 的演示文稿,我想在 android 的网络视图中显示它。我尝试了以下代码,但它在 google 驱动器应用程序中重定向。

String url1 = "https://docs.google.com/presentation/d/1nL5yO1HX_";

而我的Webiew代码如下:

WebView mywebview = findViewById(R.id.webview);

WebSettings settings = mywebview.getSettings();
settings.setJavaScriptCanOpenWindowsAutomatically(true);
settings.setBuiltInZoomControls(true);
settings.setAllowFileAccess(true);
settings.setJavaScriptEnabled(true);

mywebview.loadUrl(url1);

我用过 webclient,它对我有用

public class WebClient extends WebViewClient{
        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            // TODO Auto-generated method stub
            super.onPageStarted(view, url, favicon);
        }

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            // TODO Auto-generated method stub

            view.loadUrl(url);
            return true;

        }
    }

使用setWebViewClient,getHitTestResult.It用于获取url将要打开的文件,然后检查是否为ppt文件。

第一个 XML 文件 :-

<WebView
    android:id="@+id/webView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:focusable="true"></WebView>

主要Activity:-

        webView.setWebViewClient(new WebViewClient(){
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String request)
        {
            try{
            if(webView.getHitTestResult().getExtra().endsWith(".pptx"))
            {
                try
                {
                    Intent intent=new Intent(MainActivity.this,Main2Activity.class);
                    intent.putExtra("url",webView.getHitTestResult().getExtra());
                    startActivity(intent);
                    return true;
                }
                catch (Exception e)
                {
                    Toast.makeText(MainActivity.this, e+"", Toast.LENGTH_SHORT).show();
                }
                return true;
            }
            else
            {
                webView.loadUrl(request);
                return true;
            }}
            catch (Exception e)
            {
                return false;
            }
        }

然后在新的 activity 中获取意图值 :-

public class Main2Activity extends AppCompatActivity {

WebView webView;
@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main2);
    Intent intent=getIntent();
    String t=intent.getStringExtra("url");
    String s="http://docs.google.com/viewer?url=";
    s=s.concat(t);
    webView=(WebView)findViewById(R.id.webView);
    webView.loadUrl(s);
}
@Override
protected void onResume()
{
    this.finish();
    super.onResume();
}

第二个 XML 文件:-

<WebView
    android:id="@+id/webView"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />