安卓交互事件

1:H5调起下载

监听webview下载事件回调,代码如下:

mWebView.setDownloadListener(new DownloadListener() {    
    @Override    
    public void onDownloadStart(String s, String s1, String s2, String s3, long l) {        
//这里收到的第一个参数即为下载事件的下载地址
    downloadByBrowser(s);    
}});

获取下载地址后可自行处理以外部浏览器打开或app内部自行处理下载

2:原生交互处理
H5触发APP方法针对 H5 的接入,如果需要使用原生的下载、唤醒游戏功能,请自行在安卓 webview 中提供以下三种方法(IOS 端暂不支持):
  • TMisInstallApp(appMark:string)
    判断指定包名游戏是否安装,参数appMark包名,返回1已安装、0未安装
  • TMdownload(url:string)
    下载指定地址的安装包,参数 url 所需要下载的包地址
  • TMwakeApp(appMark:string)
    唤醒指定包名的 app,参数 appMark 包名

  • 示例代码:
    WebSettings webSettings = webView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    webView.addJavascriptInterface(XXX, “android”);//注册到window.android下

 @JavascriptInterface
public int TMisInstallApp(String packageName) {
     //判断是否安装
     boolean isInstalled = AppUtil.isApkInstalled(mContext, packageName);
     return isInstalled ? 1:0;
}
@JavascriptInterface
public void TMwakeApp(final String packageName) {
    // TODO: 参数为应用包名,实现启动对应 App 功能
}
@JavascriptInterface
public void TMdownload(final String url) {
  // TODO: 参数为 app 下载地址 url,实现下载并提示安装功能 }
3:下载进度显示
针对H5的接入,如需在下载游戏的时候,在页面中显示下载进度,H5提供方法供安卓调用:
TMloading(url, state, progress)

安卓在下载安装包的时候调用这个方法,参数说明:

  • url:安装包的下载地址
  • state: 下载状态,1=>下载中、2=>已下载
  • progress: 下载进度 数字1~100 //建议在下载包的时候每一秒调用一次
4:demo下载

jxw_demo.zip