Hbuilder中集成openinstall

引子:
现在很多的app都用混合开发,Hbuilder工具开发的app混合开发也是很火。很多时候需要集成一下第三方的sdk服务,比如:openinstall的免填邀请码安装的渠道来源追踪统计的集成

但是如果要集成使用非基座包下的第三方 SDK,就必须使用离线打包。可以参考 官方文档 进行离线打包,如果觉得官方文档太难理解,可以查看其他技术人员的教程,例如 DCloud技术与androidstudio打包

如何把第三方的渠道统计服务openinstall集成进来?实现免打包的渠道统计,渠道追踪来源,无码邀请等功能都是这次我需要用到的功能,集成openinstall能实现这些功能。

1、注册/登录openinstall开发者平台http://developer.openinstall.io/并创建应用

openinstall下载的jar包
Hbuilder中集成openinstall_第1张图片

编写 Android 原生代码
下载 openinstall SDK 并将 jar 包拷贝到项目的 libs 目录。创建一个 package,如 com.wenkiwu.hbuilder.openinstall;在包中新建一个类继承自 StandardFeature,然后对应openinstall的接口定义相应的功能方法。完整代码如下:

package com.wenkiwu.hbuilder.openinstall;

import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;

import com.fm.openinstall.OpenInstall;
import com.fm.openinstall.listener.AppInstallAdapter;
import com.fm.openinstall.listener.AppWakeUpAdapter;
import com.fm.openinstall.model.AppData;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import io.dcloud.common.DHInterface.ISysEventListener;
import io.dcloud.common.DHInterface.IWebview;
import io.dcloud.common.DHInterface.StandardFeature;
import io.dcloud.common.util.JSUtil;

public class OpenInstallApiManager extends StandardFeature {
    

    private static final String TAG = "OpenInstallApiManager";
    private IWebview webview = null;
    private String wakeupCallBackID = null;

    @Override
    public void onStart(Context context, Bundle bundle, String[] strings) {
    
        super.onStart(context, bundle, strings);
        Log.d(TAG, "init");
        OpenInstall.init(context);
    }

    public void registerWakeUpHandler(final IWebview pWebview, JSONArray array) {
    
        Log.d(TAG, "registerWakeUpHandler");
        String callBackID = array.optString(0);

        webview = pWebview;
        wakeupCallBackID = callBackID;
        // 自己注册监听并处理 onNewIntent 事件
        pWebview.obtainApp().registerSysEventListener(new ISysEventListener() {
    
            @Override
            public boolean onExecute(SysEventType sysEventType, Object o) {
    
                if (sysEventType == SysEventType.onNewIntent) {
    
                    String dataString = (String) o;
                    Intent intent = new Intent();
                    intent.

你可能感兴趣的:(移动开发互联网,Hbuilder离线打包,openinstall,无码邀请,渠道统计,地推统计)