安卓交互事件
<h5>1:H5调起下载</h5>
<p>监听webview下载事件回调,代码如下:</p>
<pre><code class="language-java">mWebView.setDownloadListener(new DownloadListener() {
@Override
public void onDownloadStart(String s, String s1, String s2, String s3, long l) {
//这里收到的第一个参数即为下载事件的下载地址
downloadByBrowser(s);
}});</code></pre>
<p>获取下载地址后可自行处理以外部浏览器打开或app内部自行处理下载</p>
<h5>2:原生交互处理</h5>
<h6>H5触发APP方法针对 H5 的接入,如果需要使用原生的下载、唤醒游戏功能,请自行在安卓 webview 中提供以下三种方法(IOS 端暂不支持):</h6>
<ul>
<li>TMisInstallApp(appMark:string)
判断指定包名游戏是否安装,参数appMark包名,返回1已安装、0未安装</li>
<li>TMdownload(url:string)
下载指定地址的安装包,参数 url 所需要下载的包地址</li>
<li>
<p>TMwakeApp(appMark:string)
唤醒指定包名的 app,参数 appMark 包名</p>
</li>
<li>
<p>示例代码:
WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webView.addJavascriptInterface(XXX, "android");//注册到window.android下</p>
<p>@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,实现下载并提示安装功能 }</p>
</li>
</ul>
<h5>3:下载进度显示</h5>
<h6>针对H5的接入,如需在下载游戏的时候,在页面中显示下载进度,H5提供方法供安卓调用:</h6>
<pre><code class="language-java">TMloading(url, state, progress)</code></pre>
<p>安卓在下载安装包的时候调用这个方法,参数说明:</p>
<ul>
<li>url:安装包的下载地址</li>
<li>state: 下载状态,1=>下载中、2=>已下载</li>
<li>progress: 下载进度 数字1~100 //建议在下载包的时候每一秒调用一次</li>
</ul>
<h5>4:demo下载</h5>
<p><a href="https://www.showdoc.com.cn/server/api/attachment/visitFile?sign=3b2b750e9ac5888ad3f176d65f672051" title="[2022-01-12-demo.zip">2022-01-12-demo.zip</a></p>