使用 jsoup 处理字体
您好先生,您可以使用 jsoup 处理您的 webview
首先你需要实现jsoup
implementation 'org.jsoup:jsoup:1.11.1'
那么您需要像这样获取您的网站
Document doc = Jsoup.connect("http://youramazing.site").get();
之后,您可以使用 append 方法将自定义样式添加到文档中
doc.head().append(" <style>\n" +
" @font-face {\n" +
" font-family: 'Roboto Slab Bold';\n" +
" src: url('file:///android_asset/fonts/syne.ttf')\n" +
" }\n" +
" body { font-family: 'Roboto Slab Bold', serif; font-size: 17px; color: #000; }\n" +
" a { color: #000; }\n" +
" </style>");
之后,您可以使用 webview 处理它
String s = doc.html() webView.loadData(s,"text/html","utf-8");
带有 AsyncTask 的完整代码:
public class MainActivity extends AppCompatActivity {
WebView webView;
Document doc;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
webView = findViewById(R.id.wewewew);
AsyncTask<Void,Void,String> asyncTask = new AsyncTask<Void, Void, String>() {
@Override
protected String doInBackground(Void... voids) {
try {
doc = Jsoup.connect("http://youramazing.site/").get();
} catch (IOException e) {
e.printStackTrace();
}
doc.head().append(" <style>\n" +
" @font-face {\n" +
" font-family: 'Roboto Slab Bold';\n" +
" src: url('file:///android_asset/fonts/syne.ttf')\n" +
" }\n" +
" body { font-family: 'Roboto Slab Bold', serif; font-size: 17px; color: #000; }\n" +
" a { color: #000; }\n" +
" </style>");
return doc.html();
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
webView.setWebViewClient(new WebViewClient());
webView.loadData(s,"text/html","utf-8");
}
};
asyncTask.execute();
}
}