问题描述: 在Android WebView中加载Apple Music的iframe时,无法正常加载。
解决方法:
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setDomStorageEnabled(true);
这将启用WebView的JavaScript支持和DOM存储。
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
// 延迟一段时间后再注入JavaScript,以确保页面已完全加载
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// 将JavaScript代码注入WebView
webView.loadUrl("javascript:(function(){ " +
"var script=document.createElement('script');" +
"script.setAttribute('src', 'https://js-cdn.music.apple.com/musickit/v1/musickit.js');" +
"document.head.appendChild(script);" +
"})()");
}
}, 2000); // 延迟两秒钟
}
});
这将在页面加载完成后注入JavaScript代码,以加载所需的音乐套件脚本。
这将允许应用程序访问Internet。
完整的示例代码如下:
WebView webView = findViewById(R.id.webView);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setDomStorageEnabled(true);
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
webView.loadUrl("javascript:(function(){ " +
"var script=document.createElement('script');" +
"script.setAttribute('src', 'https://js-cdn.music.apple.com/musickit/v1/musickit.js');" +
"document.head.appendChild(script);" +
"})()");
}
}, 2000);
}
});
webView.loadUrl("https://example.com/apple-music-iframe");
注意:将"https://example.com/apple-music-iframe"替换为实际要加载的Apple Music iframe的URL。
希望这个解决方法对你有帮助!