第三十章 网页浏览(未完)
- 调用外部浏览器
new intent(intent.ACTION_VIEW, uri)
- 使用webview
mProgressBar = v.findViewById(R.id.progress_bar);
mProgressBar.setMax(100);
mWebView = v.findViewById(R.id.web_view);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.setWebChromeClient(new WebChromeClient(){
public void onProgressChanged(WebView webView, int newProgress){
if (newProgress == 100){
mProgressBar.setVisibility(View.GONE);
}else{
mProgressBar.setVisibility(View.VISIBLE);
mProgressBar.setProgress(newProgress);
}
}
@Override
public void onReceivedTitle(WebView view, String title) {
AppCompatActivity activity = (AppCompatActivity) getActivity();
activity.getSupportActionBar().setSubtitle(title);
}
});
mWebView.setWebViewClient(new WebViewClient());
mWebView.loadUrl(mUri.toString());
- WebView的旋转问题
因为没办法在onSaveInstance
内全部保存, 就要重新加载, 解决方法是让设备自己处理设备配置更改,
- 键盘开关
- 屏幕方向改变
- 屏幕大小改变
<activity android:name=".PhotoPageActivity"
android:configChanges="keyboardHidden|orientation|screenSize"/>
- 这样造成的影响是资源修饰符无法自动工作, 需要手动配置
- 不要忘记用
onSaveInstance
保存相关的UI状态.
挑战练习
- 注入js对象
- 回退历史界面
- 跳转的链接为非Http链接