Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 安卓网络视图赢得';t从锚标记加载远程url_Javascript_Php_Android_Mobile_Webview - Fatal编程技术网

Javascript 安卓网络视图赢得';t从锚标记加载远程url

Javascript 安卓网络视图赢得';t从锚标记加载远程url,javascript,php,android,mobile,webview,Javascript,Php,Android,Mobile,Webview,我正在构建我的第一个android应用程序,但遇到了一个问题。基本上,我正在尝试将内置于PHP的Youtube 2 Mp3页面移植到移动应用程序。我已经成功地做到了这一点,但我遇到的问题是,转换成mp3后,我无法从android应用程序页面上打印的链接下载mp3文件。它可以直接从网页上正常工作,如果我让应用程序在androids默认浏览器(Chrome)中加载链接,它也可以正常工作,但是当我让应用程序在WebView中加载链接时,它就不工作了 文件:MainActivity.java p

我正在构建我的第一个android应用程序,但遇到了一个问题。基本上,我正在尝试将内置于PHP的Youtube 2 Mp3页面移植到移动应用程序。我已经成功地做到了这一点,但我遇到的问题是,转换成mp3后,我无法从android应用程序页面上打印的链接下载mp3文件。它可以直接从网页上正常工作,如果我让应用程序在androids默认浏览器(Chrome)中加载链接,它也可以正常工作,但是当我让应用程序在WebView中加载链接时,它就不工作了

文件:MainActivity.java

    public class MainActivity extends AppCompatActivity {

WebView web;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    web = (WebView) findViewById(R.id.webView);

    web.setWebViewClient(new myWebClient());
    web.getSettings().setJavaScriptEnabled(true);

    web.loadUrl("http://www.bigjohn863.com/youtubetomp3/index.php");

    FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                    .setAction("Action", null).show();
        }
    });
}

public class myWebClient extends WebViewClient
{
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {

        view.loadUrl(url);
        return false;

    }
}
网页:

当在常规浏览器中加载网页时,该网页会按预期工作,如果在android默认浏览器(Chrome)中使用该网页,效果会很好,但是如果我将代码更改为仅在webview中加载单击的链接,那么当我单击该链接时,它将不起任何作用


验证
url
后,尝试将其添加到函数
shouldOverrideUrlLoading(WebView视图,字符串url)
。它将开始类似于从任何网页下载的下载

 if (url.endsWith(".mp3")) {
                Uri source = Uri.parse(url);
                // Make a new request pointing to the .mp3 url
                DownloadManager.Request request = new DownloadManager.Request(source);
                // appears the same in Notification bar while downloading
                request.setDescription("Description for the DownloadManager Bar");
                request.setTitle("YourMp3.mp3");
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
                    request.allowScanningByMediaScanner();
                    request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
                }
                // save the file in the "Downloads" folder of SDCARD
                request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "MyMp3.mp3");
                // get download service and enqueue file
                DownloadManager manager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);
                manager.enqueue(request);
            }

此代码显然无法在android web视图中运行,因为它包含PHP代码,PHP代码是服务器端代码,而android web视图只能运行客户端代码


如果您想运行它,那么从服务器获取数据作为URL并将其放入锚定标记中,或者您可以通过将完整的硬代码URL放入锚定标记中来尝试

您是否为链接指定了相对路径?如果可能的话,请发布您用于Hyperlink的代码。我在清单中已经有了。它正确加载了需要internet的页面,只是页面上的超链接在android应用程序中不起作用。请告诉我您是否正在寻找此类功能,并添加权限
先生。。。你就是那个人!工作起来很有魅力。非常感谢你的帮助!是的,代码来自服务器端。。。我只是告诉你网页是如何根据你的请求生成超链接的。
<a href="<?php echo $_SERVER['PHP_SELF']; ?>?mp3=' + encodeURI(songFile) + '">Download your MP3 file</a>