初始化SDK
initSDK(ICore core)
说明:
初始化SDK, SDK所有接口必须在初始化之后才可以调用
参数:
- core(ICore ) 5+内核对象
示例
@Override
public void onCoreReady(ICore coreHandler) {
try {
SDK.initSDK(coreHandler);
SDK.requestAllFeature();
} catch (Exception e) {
e.printStackTrace();
}
}
SDK集成使用方法
IApp startWebApp(Activity activity,String appBasePath,String startArgs,IWebviewStateListener listener,IOnCreateSplashView ocs)
说明:
创建并启动5+WebApp对象
参数:
- activity(Activity) Activity对象
- appBasePath(String) 移动应用所在的目录
- startArgs(String) 应用启动时传递的参数
- listener(IWebviewStateListener) Webview事件监听对象,用来监听应用的首页面加载状态
- ocs(IOnCreateSplashView) Splash事件监听对象,用来监听splash页面的加载和关闭事件
示例
public void onCoreInitEnd(ICore coreHandler) {
//创建默认webapp,
String appBasePath = "/apps/HelloH5";//表示 file:///android_asset/apps/HBuilder
String args = "{url:'http://www.baidu.com'}";//设置启动参数
app = SDK.startWebApp(activity,appBasePath, args, new IWebviewStateListener() {
@Override
public Object onCallBack(int pType, Object pArgs) {
switch (pType) {
case IWebviewStateListener.ON_WEBVIEW_READY:
//准备完毕之后添加webview到显示父View中,设置排版不显示状态,避免显示webview时,html内容排版错乱问题
View view = ((IWebview)pArgs).obtainApp().obtainWebAppRootView().obtainMainView();
view.setVisibility(View.INVISIBLE);
rootView.addView(view, 0);
break;
case IWebviewStateListener.ON_PAGE_STARTED:
break;
case IWebviewStateListener.ON_PROGRESS_CHANGED:
break;
case IWebviewStateListener.ON_PAGE_FINISHED:
//页面加载完毕,设置显示webview
app.obtainWebAppRootView().obtainMainView().setVisibility(View.VISIBLE);
break;
}
return null;
}
},this);
}
IWebview createWebview(Activity activity,String pagePath,String basePath,String docPath,String appid, String appName,IWebviewStateListener listener)
说明:
创建一个支持5+API的Webview对象
参数:
- activity(Activity) Activity对象
- pagePath(String) 页面路径
- basePath(String) 应用的默认路径
- docPath(String) 应用的doc目录路径
- appid(String) 应用的appid
- appName(String) 应用名称
- listener(IWebviewStateListener) 加载事件监听器
示例:
public void onCoreInitEnd(ICore coreHandler) {
//设置单页面集成的appid
String appid = "test1";
// 单页面集成时要加载页面的路径,可以是本地文件路径也可以是网络路径
String url = "file:///android_asset/apps/H5Plugin/www/index.html";
webview = SDK.createWebview(activity, url, appid, new IWebviewStateListener() {
@Override
public Object onCallBack(int pType, Object pArgs) {
switch (pType) {
case IWebviewStateListener.ON_WEBVIEW_READY:
// 准备完毕之后添加webview到显示父View中,设置排版不显示状态,避免显示webview时,html内容排版错乱问题
((IWebview) pArgs).obtainFrameView().obtainMainView().setVisibility(View.INVISIBLE);
SDK.attach(mRootView, ((IWebview) pArgs));
break;
case IWebviewStateListener.ON_PAGE_STARTED:
break;
case IWebviewStateListener.ON_PROGRESS_CHANGED:
break;
case IWebviewStateListener.ON_PAGE_FINISHED:
// 页面加载完毕,设置显示webview
webview.obtainFrameView().obtainMainView().setVisibility(View.VISIBLE);
break;
}
return null;
}
});
}
IWebview createWebview(Activity activity,String pagePath,String appid,IWebviewStateListener listener)
说明:
创建一个支持5+API的Webview对象
参数:
- activity(Activity) Activity对象
- pagePath(String) HTML页面的路径
- appid(String) 默认应用的APPID
- listener(IWebviewStateListener) 页面加载事件监听器
WebApp相关方法
void stopWebApp(IApp app)
说明:
停止一个正在运行的5+WebApp
参数:
app(IApp) 正在运行的WebAPP对象
String obtainCurrentRunnbingAppId()
说明:
获取当前正在运行的5+WebApp的APPID
IApp obtainCurrentApp ()
说明:
获取到当前在前台运行的5+Webapp对象
页面相关方法
ArrayList obtainAllIWebview()
说明:
获取运行应用的Webview对象的集合
IWebview obtainWebview(String appid,String webviewId)
说明:
根据APPID和WebviewID获取到指定的Webview对象
参数:
- appid(String) 要获取应用的APPID
- webviewId(String) 获取应用内页面的ID
IWebview obatinFirstPage(IApp app,IWebviewStateListener listener)
说明:
获取指定应用app的首页面Iwebview对象
参数:
- app(IApp) IApp对象
- listener(IWebviewStateListener) 应用首页面的加载状态的监听
void closeWebView(IWebview webview)
说明:
关闭指定IWebview页面
参数:
- webview(IWebview)
设置可使用的5+API权限
void requestAllFeature()
说明:
向5+基座申请全部扩展API调用能力
示例
public void onCoreReady(ICore coreHandler) {
try {
SDK.initSDK(coreHandler);
SDK.requestAllFeature();
} catch (Exception e) {
e.printStackTrace();
}
}
void requestFeature(String mainFeatureName,String subFeatrureName,boolean autoBoot)
说明
单独设置可以使用的API特征名
参数
- mainFeatureName(String) JS 特征名称
- subFeatrureName(String) JS特征二级名称
- autoBoot(boolean) 是否基座自动启动
示例
requestFeature("Share","share-weixin",false);
注册新扩展插件
void registerJsApi(String featureName,String className,String jsContent)
说明:
向5+SDK注册一个新的扩展API
参数:
- featureName(String) 扩展插件的JS功能名称
- className(String) 扩展插件的原生类名
- jsContent(String) 扩展插件的JS代码
示例
// 注册新的5+扩展API
private void regNewJsAPI() {
// 扩展插件的JS特征名称
String featureName = "T";
// 为处理扩展Feature的接收类全名称
String className = "com.HBuilder.integrate.webview.WebViewMode_FeatureImpl";
// content 为扩展Feature而创建的js代码
String content = "(function(plus){function test(){return plus.bridge.execSync('T','test',[arguments]);}plus.T = {test:test};})(window.plus);";
// 注册新的扩展方法
SDK.registerJsApi(featureName, className, content);
}
23 个评论
要回复文章请先登录或注册
骁骑 (作者)
9***@qq.com
蔡邵鑫