当前位置: 首页 > 知识库问答 >
问题:

如何在Android 8中链接html页面

葛智敏
2023-03-14

我有一个小小的在线帮助,由几个相互链接的HTML组成。

这在过去效果很好,但Android 8只能显示进入页面,只要我点击任何链接,我就会:

10-08 09:04:17.616 22871 22871 E AndroidRuntime: FATAL EXCEPTION: main
10-08 09:04:17.616 22871 22871 E AndroidRuntime: Process: net.sourceforge.uiq3.fx602p, PID: 22871
10-08 09:04:17.616 22871 22871 E AndroidRuntime: android.os.FileUriExposedException: file:///android_asset/Modes.html exposed beyond app through Intent.getData()
10-08 09:04:17.616 22871 22871 E AndroidRuntime:    at android.os.StrictMode.onFileUriExposed(StrictMode.java:1958)
10-08 09:04:17.616 22871 22871 E AndroidRuntime:    at android.net.Uri.checkFileUriExposed(Uri.java:2356)
10-08 09:04:17.616 22871 22871 E AndroidRuntime:    at android.content.Intent.prepareToLeaveProcess(Intent.java:10511)
10-08 09:04:17.616 22871 22871 E AndroidRuntime:    at android.content.Intent.prepareToLeaveProcess(Intent.java:10465)
10-08 09:04:17.616 22871 22871 E AndroidRuntime:    at android.app.Instrumentation.execStartActivity(Instrumentation.java:1616)
10-08 09:04:17.616 22871 22871 E AndroidRuntime:    at android.app.Activity.startActivityForResult(Activity.java:4564)
10-08 09:04:17.616 22871 22871 E AndroidRuntime:    at android.app.Activity.startActivityForResult(Activity.java:4522)
10-08 09:04:17.616 22871 22871 E AndroidRuntime:    at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:784)
10-08 09:04:17.616 22871 22871 E AndroidRuntime:    at android.app.Activity.startActivity(Activity.java:4883)
10-08 09:04:17.616 22871 22871 E AndroidRuntime:    at android.app.Activity.startActivity(Activity.java:4851)
10-08 09:04:17.616 22871 22871 E AndroidRuntime:    at android.content.ContextWrapper.startActivity(ContextWrapper.java:377)
10-08 09:04:17.616 22871 22871 E AndroidRuntime:    at aiM.startActivity(SourceFile:22)
10-08 09:04:17.616 22871 22871 E AndroidRuntime:    at agA.a(SourceFile:34)
10-08 09:04:17.616 22871 22871 E AndroidRuntime:    at org.chromium.android_webview.AwContentsClientBridge.shouldOverrideUrlLoading(SourceFile:173)
10-08 09:04:17.616 22871 22871 E AndroidRuntime:    at android.os.MessageQueue.nativePollOnce(Native Method)
10-08 09:04:17.616 22871 22871 E AndroidRuntime:    at android.os.MessageQueue.next(MessageQueue.java:325)
10-08 09:04:17.616 22871 22871 E AndroidRuntime:    at android.os.Looper.loop(Looper.java:142)
10-08 09:04:17.616 22871 22871 E AndroidRuntime:    at android.app.ActivityThread.main(ActivityThread.java:6944)
10-08 09:04:17.616 22871 22871 E AndroidRuntime:    at java.lang.reflect.Method.invoke(Native Method)
10-08 09:04:17.616 22871 22871 E AndroidRuntime:    at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
10-08 09:04:17.616 22871 22871 E AndroidRuntime:    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)

当然,所有页面都显示在应用程序内部,没有任何内容“泄漏”到外部。即使:这只是在线帮助,如果是的话,也不在乎。

咆哮够了:如何解决这个问题?

更新1:

这个页面只有一个简单的布局和一个几乎是空的活动:

<LinearLayout
  android:layout_height='match_parent'
  android:layout_width='match_parent'
  xmlns:android='http://schemas.android.com/apk/res/android'
>
  <WebView
    android:id='@+id/Help'
    android:layout_height='match_parent'
    android:layout_width='match_parent'
  ></WebView>
</LinearLayout>

@igor_rb建议重载应该OverrideUrlLodingWebViewClient-但我目前实际上并没有使用WebViewClient

共有1个答案

苍和裕
2023-03-14

您可以尝试重写shouldOverrideUrlLoading方法,了解更多信息。

当URL即将加载到当前WebView中时,让宿主应用程序有机会控制。如果未提供WebViewClient,默认情况下WebView将要求Activity Manager为URL选择适当的处理程序。如果提供了WebViewClient,则返回true会导致当前WebView中止加载URL,而返回false会导致WebView像往常一样继续加载URL。

例如,您可以尝试简单地从他那里返回false:

  WebViewClient client = new WebViewClient() {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        return false;
    }
};
 类似资料:
  • 问题内容: 我正在处理HTML项目,但是我不知道如何在没有JavaScript的情况下在新标签页中打开链接。 我已经知道可以在同一选项卡中打开链接。有什么想法可以使其在新的环境中打开吗? 问题答案: 将链接的“目标”属性设置为: (注意:我之前建议这样做,而不是因为如果使用它,它将打开一个新选项卡,如果再次单击该链接,则会使用相同的选项卡。但是,这仅是因为正如GolezTrol所指出的那样,它指向

  • 我正在做一个HTML项目,我无法找到如何在没有JavaScript的情况下打开新选项卡中的链接。 我已经知道在同一个选项卡中打开链接。有什么想法如何让它在一个新的开放?

  • 问题内容: 我正在开发一个需要从链接获取网页源,然后从该页面解析html的应用程序。 您能给我一些例子,还是从哪里着手开始编写这样的应用程序? 问题答案: 您可以使用HttpClient执行HTTP GET并检索HTML响应,如下所示:

  • 本文向大家介绍如何使用HTML中的相对URL链接页面?,包括了如何使用HTML中的相对URL链接页面?的使用技巧和注意事项,需要的朋友参考一下 要使用HTML中的相对URL链接页面,请使用带有href属性的<a>标记。相对URL用于在网站上添加指向页面的链接。例如,/ contact,/ about_team等。 <a>…</a>标记内的所有内容均变为超链接。下面列出了<a>标记的一些属性, 序号

  • 问题内容: 对于我的网站,我想添加一个新功能。 我希望用户能够上传他的书签备份文件(如果可能的话,可以从任何浏览器上传),这样我就可以将其上传到他们的个人资料,而他们不必手动插入所有文件… 我唯一缺少的是从上传文件中提取标题和URL的部分。任何人都可以提供从哪里开始或在哪里阅读的线索? 使用的搜索选项和如何从原始HTML文件提取数据?这是与我最相关的问题,因此不再赘述。 我真的不介意它是否使用jq

  • 问题内容: 我有HTML的基本概念。我想在示例网站中创建下载链接,但是我不知道如何创建它。我该如何链接才能下载文件而不是访问文件? 问题答案: 这个答案已经过时了。现在,我们有了属性。 如果“下载链接”是指要下载文件的链接,请使用 在将下载开始之前,新的浏览器窗口出现。当浏览器发现资源是文件下载时,通常会关闭该窗口。 请注意,浏览器已知的文件类型(例如JPG或GIF图像)通常会在浏览器中打开。