在WebView上远程访问Web服务,Web服务上点击链接,打开Word文档并可编辑
public class WebViewUI extends Activity{
private WebView webView;
private Handler handler = new Handler();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Utils.fullScreen(this);
setContentView(R.layout.webview_ui);
// Button btnReturn = (Button)findViewById(R.id.btnback);
// btnReturn.setOnClickListener(new View.OnClickListener() {
// @Override
// public void onClick(View v) {
// finish();
// }
// });
// regBroadCast();
webView = (WebView) findViewById(R.id.webView);
webView.setWebChromeClient(new WebChromeClient());//手机访问js必须
webView.setWebViewClient(new MyWebViewClient());//防止页面切换时弹出其他浏览器提示
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(new DemoJavaScriptInterface(), "danielinbiti");
webView.loadUrl(SysConfig.getInstance().getRootPath()+"web/index.html");
}
final class DemoJavaScriptInterface {
DemoJavaScriptInterface() {
}
public void clickOnAndroid(String type) {
Log.d("kkkkkkk", type);
handler.post(new Runnable() {
public void run() {//
webView.loadUrl("javascript:updateWordName('wordname.docx')");
openWord("test.docx");
}
});
}
}
private void openWord(String wordName){
Intent intent = new Intent();
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setAction(android.content.Intent.ACTION_VIEW);
//intent.setClassName("cn.wps.moffice","cn.wps.moffice.documentmanager.PreStartActivity");//早期版本是这个
intent.setClassName("cn.wps.moffice_eng","cn.wps.moffice.documentmanager.PreStartActivity2");
//String sdPath = Environment.getExternalStorageDirectory()+"/apk/word1.docx";
//Uri uri = Uri.fromFile(new File("/mnt/sdcard/test.docx"));
Uri uri = Uri.fromFile(new File(Environment.getExternalStorageDirectory(),wordName));
intent.setData(uri);
try{
startActivity(intent);
}catch(Exception ex){
Log.d("333333333333", ex.getMessage());
}
}
}
在js上
function callWebView(type){
window.danielinbiti.clickOnAndroid(type);
}
function updateWordName(name){
document.getElementById('txtareayj').value=name;
//alert(name);
}
这样实现的效果,可以实现在线打开Word文档并编辑的效果。