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