gpt4 book ai didi

javascript - asset文件夹中的文件可以在webview中运行,sd卡中的文件可以在外部浏览器中运行,我想在webview和外部浏览器中运行文件

转载 作者:行者123 更新时间:2023-11-28 04:30:36 26 4
gpt4 key购买 nike

myWeb = (WebView) findViewById(R.id.webView1);
myWeb.getSettings().setJavaScriptEnabled(true);
myWeb.getSettings().setDomStorageEnabled(true);
myWeb.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress) {
activity.setProgress(progress * 1000);
}
});

myWeb.loadUrl("/mnt/extSdCard/THEWEB/hi.html");

//file:///android_asset/this.html could run in webview but not in externalbrowser ///mnt/extSdCard/THEWEB/hi.html could run in external but not in web view

File file=new File("/mnt/extSdCard/THEWEB/hi.html");
Intent i = new Intent(Intent.ACTION_VIEW, Uri.fromFile(file));
i.addCategory(Intent.CATEGORY_BROWSABLE);
i.setDataAndType(Uri.fromFile(file), "application/x-webarchive-xml");
startActivity(i);

最佳答案

第一个选项 (/file:///android_asset/this.html) 它在本地浏览器中工作,因为该文件位于包文件夹内。这是私有(private)的,其他应用程序(包括外部浏览器)不能从外部访问它。

你写的第二个是将文件放在共享文件夹中,这可以从内部 webview 和外部 webview 访问。特别是您的代码的问题是路径:

"/mnt/extSdCard/THEWEB/hi.html"

它需要是这样的:

"file:///mnt/extSdCard/THEWEB/hi.html"

或者你可以使用更好的方法:

"file://"+Environment.getExternalStorageDirectory()+"/THEWEB/hi.html"

并且您的应用应该在 list 中添加访问外部存储的权限:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

关于javascript - asset文件夹中的文件可以在webview中运行,sd卡中的文件可以在外部浏览器中运行,我想在webview和外部浏览器中运行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41744758/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com