android-webview不打开pdf或ms word

android-webview不打开pdf或ms word,android,pdf,webview,Android,Pdf,Webview,我的webview不希望在加载html页面后打开PDF或word文档。 如果我用pdf或word文档启动应用程序url字符串,它会很好地打开,但是如果我用html启动,然后从那里单击pdf或word链接,则不会发生任何事情 我错过了什么? 我的代码放对地方了吗?为什么它只在负载下工作。我的代码在创建时只执行一次,然后就被忽略了吗?当单击链接以查找加载url或myScript时,是否需要侦听器或其他东西来应用if语句?如何在导航上不断更新url和myScript值 MainActivity.jav

我的webview不希望在加载html页面后打开PDF或word文档。 如果我用pdf或word文档启动应用程序url字符串,它会很好地打开,但是如果我用html启动,然后从那里单击pdf或word链接,则不会发生任何事情

我错过了什么? 我的代码放对地方了吗?为什么它只在负载下工作。我的代码在创建时只执行一次,然后就被忽略了吗?当单击链接以查找加载url或myScript时,是否需要侦听器或其他东西来应用if语句?如何在导航上不断更新url和myScript值

MainActivity.java

    import android.app.AlertDialog;
import android.content.DialogInterface;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends AppCompatActivity {

    private static WebView browser;

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

        browser=(WebView)findViewById(R.id.webView);
        browser.setWebViewClient(new WebViewClient());

        String url ="http://example.com/index.html";

String myScript ="https://docs.google.com/gview?embedded=true&url="+url;

        browser.getSettings().setJavaScriptEnabled(true);
        //browser.getSettings().setBuiltInZoomControls(true);
        //browser.getSettings().setDisplayZoomControls(false);
        browser.getSettings().setAllowFileAccess(true);
        browser.getSettings().setSupportMultipleWindows(true);
        browser.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);


        if (url.contains(".pdf")){
            browser.loadUrl(myScript);
        } else if (url.contains(".doc")){
            browser.loadUrl(myScript);
        }else{
            browser.loadUrl(url);
        }

    }
    @Override
    public void onBackPressed() {
        if (browser.isFocused() && browser.canGoBack()) {
            browser.goBack();
        } else {
            new AlertDialog.Builder(this)
                    .setIcon(android.R.drawable.ic_dialog_alert)
                    .setTitle("Exit!")
                    .setMessage("Are you sure you want to close?")
                    .setPositiveButton("Yes", new DialogInterface.OnClickListener()
                    {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            finish();
                        }
                    })
                    .setNegativeButton("No", null)
                    .show();
        }
    }
}
在我的舱单上

  <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example">
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label=""
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

和活动主xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.MainActivity">

    <WebView
        android:id="@+id/webView"
        android:layout_width="368dp"
        android:layout_height="495dp"
        tools:ignore="MissingConstraints"
        tools:layout_editor_absoluteX="8dp"
        tools:layout_editor_absoluteY="8dp" />
</android.support.constraint.ConstraintLayout>


我不知道您为什么要将
应用程序/pdf
传递到
加载数据()
,因为
myScript
不包含pdf,而是包含HTML。再说一次,我不推荐这种方法(依赖谷歌文档URL)首先显示内容。对于PDF,请下载它们并在用户选择的PDF查看器中显示。或者,在紧急情况下,使用。关于loadData,您是对的,这是我尝试的旧代码的一部分。但即使我将其更改为loadData(myScript,“text/html”,“UTF-8”);或者使用loadUrl并传递pdf url,或者将其与google viewer结合,我仍然没有得到任何响应。