Android Hybrid模式

1. SDK集成

Android App 中如需加载 H5 页面,需要同时集成Android SDK与JS SDK。

1.1 集成 Android SDK

集成方式查看Android SDK 使用说明

1.2 集成 JS SDK

集成方式查看JS SDK 使用说明

2. 代码集成

2.1 设置UserAgent

在初始化 WebView 后,调用setHybridModel()接口设置UserAgent

接口如下:

// 设置UA
public static void setHybridModel(Context context, Object webView);
  • context :应用上下文对象

  • webView :WebView 对象

注意:若项目中需要设置UserAgent,则需要使用追加方式,请勿覆盖调用setHybridMode接口设置的"AnalysysAgent/Hybrid"标识

示例:

public class WebViewDemo extends AppCompatActivity {
private WebView mWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_webview_demo);
mWebView = (WebView) findViewById(R.id.wv_main);
mWebView.loadUrl("file:///android_asset/index.html");
mWebView.setWebViewClient(new MyWebviewClient());
mWebView.getSettings().setJavaScriptEnabled(true);
// 设置UserAgent
AnalysysAgent.setHybridModel(this, mWebView);
}
}

2.2 SDK监听拦截URL

当调用设置UserAgent后,H5 页面触发事件时,会把事件发往 App 端,App SDK 端接收到数据后保存并上报。 接口如下:

public static void interceptUrl(Context context, String url, Object webView);
  • context : 应用上下文对象

  • url :URL地址

  • webView :WebView对象

示例:

class MyWebviewClient extends WebViewClient {
@Override
public void onPageFinished(WebView view, String url) {
Log.d("analysys.hybrid", "onPageFinished url:" + url);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// 设置URL拦截
AnalysysAgent.interceptUrl(WebViewDemo.this, url, view);
return false;
}
}

2.3 重置UserAgent

撤销在“设置UserAgent”接口中对UserAgent做的修改重置UserAgent,在页面关闭的时候调用。 接口如下:

public static void resetHybridModel(Context context, Object webView);
  • context :应用上下文对象

  • webView :WebView对象

示例:

@Override
protected void onDestroy() {
super.onDestroy();
mWebView.removeAllViews();
mWebView.destroy();
AnalysysAgent.resetHybridModel(this, mWebView);
}