类android.webkit.JavascriptInterface源码实例Demo

下面列出了怎么用android.webkit.JavascriptInterface的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: pe-protector-moe   文件: MapPathHtml.java
@JavascriptInterface
public void onFinish(String name, String obj) {
    name = name.replace(" ", "");
    // 检测是否有重复的
    List<MapConfigBean> list = LitePal.select("*")
            .where("name=?", name)
            .find(MapConfigBean.class);
    for (MapConfigBean b : list) {
        b.delete();
    }
    MapConfigBean bean = new MapConfigBean();
    bean.name = name;
    bean.data = obj;
    bean.save();
    callBack.onFinish(null);
}
 
源代码2 项目: VideoOS-Android-SDK   文件: JsBridge.java
@Deprecated
@JavascriptInterface
public void detectPaymentMethod(String jsParams) {
    VenvyLog.i("支付宝==" + jsParams);
    try {
        JSONObject json = new JSONObject(jsParams);
        JSONObject msg = json.optJSONObject("msg");
        JSONObject data = msg.optJSONObject("data");
        boolean result = goPay(data.optString("url"));
        String jsData = result ? "true" : "fasle";
        callJsFunction(jsData, jsParams);
    } catch (Exception e) {
        e.printStackTrace();
    }

}
 
源代码3 项目: Focus   文件: MJavascriptInterface.java
@android.webkit.JavascriptInterface
public void openUrl(final String url) {
    new MaterialDialog.Builder(activity)
            .title("即将前往")
            .content("点击「确定」将会访问该链接地址")
            .positiveText("确定")
            .negativeText("取消")
            .onPositive(new MaterialDialog.SingleButtonCallback() {
                @Override
                public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
                    WebViewUtil.openLink(url, (Activity) activity);

                }
            })
    .show();
}
 
@JavascriptInterface
public void signTransaction(
        int callbackId,
        String recipient,
        String value,
        String nonce,
        String gasLimit,
        String gasPrice,
        String payload) {
    if (value.equals("undefined")) value = "0";
    if (gasPrice == null) gasPrice = "0";
    Web3Transaction transaction = new Web3Transaction(
            TextUtils.isEmpty(recipient) ? Address.EMPTY : new Address(recipient),
            null,
            Hex.hexToBigInteger(value),
            Hex.hexToBigInteger(gasPrice, BigInteger.ZERO),
            Hex.hexToBigInteger(gasLimit, BigInteger.ZERO),
            Hex.hexToLong(nonce, -1),
            payload,
            callbackId);

    webView.post(() -> onSignTransactionListener.onSignTransaction(transaction, getUrl()));
}
 
源代码5 项目: PoupoLayer   文件: PopWebViewService.java
/**
 * 提供隐藏webview弹窗的服务 from native
 */
@JavascriptInterface
public void hidePopLayer() {
    mWebView.post(new Runnable() {
        @Override
        public void run() {
            mWebView.setVisibility(View.GONE);
            PopManager.getInstance(mWebView.getContext()).onPopDimiss();
            mWebView.stopLoading();
            mWebView.clearHistory();
            mWebView.clearCache(true);
            mWebView.loadUrl("about:blank");
            mWebView.pauseTimers();
            mWebView = null;
        }
    });
}
 
源代码6 项目: TelePlus-Android   文件: WebviewActivity.java
@JavascriptInterface
public void postEvent(final String eventName, final String eventData) {
    AndroidUtilities.runOnUIThread(new Runnable() {
        @Override
        public void run() {
            if (getParentActivity() == null) {
                return;
            }
            if (BuildVars.LOGS_ENABLED) {
                FileLog.d(eventName);
            }
            switch (eventName) {
                case "share_game":
                    currentMessageObject.messageOwner.with_my_score = false;
                    break;
                case "share_score":
                    currentMessageObject.messageOwner.with_my_score = true;
                    break;
            }
            showDialog(ShareAlert.createShareAlert(getParentActivity(), currentMessageObject, null, false, linkToCopy, false));
        }
    });
}
 
源代码7 项目: WanAndroid   文件: SonicJavaScriptInterface.java
@JavascriptInterface
public void getDiffData2(final String jsCallbackFunc) {
    if (null != sessionClient) {
        sessionClient.getDiffData(new SonicDiffDataCallback() {
            @Override
            public void callback(final String resultData) {
                Runnable callbackRunnable = new Runnable() {
                    @Override
                    public void run() {
                        String jsCode = "javascript:" + jsCallbackFunc + "('"+ toJsString(resultData) + "')";
                        sessionClient.getWebView().loadUrl(jsCode);
                    }
                };
                if (Looper.getMainLooper() == Looper.myLooper()) {
                    callbackRunnable.run();
                } else {
                    new Handler(Looper.getMainLooper()).post(callbackRunnable);
                }
            }
        });
    }
}
 
源代码8 项目: VideoOS-Android-SDK   文件: JsBridge.java
@JavascriptInterface
public void setUserInfo(String jsParams) {
    VenvyLog.i("---userInfo--" + jsParams);


    try {
        JSONObject json = new JSONObject(jsParams);
        JSONObject user = json.optJSONObject("msg");
        PlatformUserInfo platformUserInfo = new PlatformUserInfo();
        platformUserInfo.setPhoneNum(user.optString("phone"));
        platformUserInfo.setUserToken(user.optString("token"));
        platformUserInfo.setUserName(user.optString("userName"));
        platformUserInfo.setNickName(user.optString("nickName"));
        platformUserInfo.setUid(user.optString("uid"));
        if (mPlatformLoginInterface != null) {
            mPlatformLoginInterface.userLogined(platformUserInfo);
        }
        //todo
    } catch (JSONException e) {

    }
}
 
源代码9 项目: TelePlus-Android   文件: PaymentFormActivity.java
@JavascriptInterface
public void postEvent(final String eventName, final String eventData) {
    AndroidUtilities.runOnUIThread(() -> {
        if (getParentActivity() == null) {
            return;
        }
        if (eventName.equals("payment_form_submit")) {
            try {
                JSONObject jsonObject = new JSONObject(eventData);
                JSONObject response = jsonObject.getJSONObject("credentials");
                paymentJson = response.toString();
                cardName = jsonObject.getString("title");
            } catch (Throwable e) {
                paymentJson = eventData;
                FileLog.e(e);
            }
            goToNextStep();
        }
    });
}
 
源代码10 项目: TelePlus-Android   文件: EmbedBottomSheet.java
@JavascriptInterface
public void postEvent(final String eventName, final String eventData) {
    AndroidUtilities.runOnUIThread(new Runnable() {
        @Override
        public void run() {
            switch (eventName) {
                case "loaded":
                    progressBar.setVisibility(View.INVISIBLE);
                    progressBarBlackBackground.setVisibility(View.INVISIBLE);
                    pipButton.setEnabled(true);
                    pipButton.setAlpha(1.0f);
                    showOrHideYoutubeLogo(false);
                    break;
            }
        }
    });
}
 
源代码11 项目: tysq-android   文件: TyJavaScriptInterface.java
/**
 * 与js交互时用到的方法,在js里直接调用
 */
@JavascriptInterface
public void fromHtml(final String type, final String json) {
    Log.i(TAG, "fromHtml: [type: " + type + "; json:" + json + "]");

    switch (type) {
        case Constant.HtmlType.OPEN_NEW_LINK:
            OpenNewLink openNewLink = mGson.fromJson(json, OpenNewLink.class);

            if (openNewLink.isNeedLogin()) {
                if (UserCache.isEmpty()) {
                    LoginActivity.startActivity(mContext.get(), null);
                    return;
                }
            }

            String navigationLink = openNewLink.getNavigationLink();

            TyUtils.handleWebViewLink(mContext.get(), navigationLink);

            break;
    }
}
 
@JavascriptInterface
public void registerAnchor(final String requestId, final float[] matrix) {
    if (requestId == null || matrix == null) {
        return;
    }

    mSurfaceView.queueEvent(new Runnable() {
        @Override
        public void run() {
            Pose anchorPose = Pose.makeTranslation(matrix[12], matrix[13], matrix[14]);
            Anchor anchor = mSession.createAnchor(anchorPose);

            final String scriptString = "ARCoreBridge.registerAnchorResponse('" + requestId + "', '" + String.valueOf(anchor.hashCode()) + "');";
            evaluateWebViewJavascript(scriptString);
        }
    });
}
 
源代码13 项目: Web3View   文件: SignCallbackJSInterface.java
@JavascriptInterface
public void signTransaction(
        int callbackId,
        String recipient,
        String value,
        String nonce,
        String gasLimit,
        String gasPrice,
        String payload) {
    Transaction transaction = new Transaction(
            TextUtils.isEmpty(recipient) ? Address.EMPTY : new Address(recipient),
            null,
            Hex.hexToBigInteger(value),
            Hex.hexToBigInteger(gasPrice, BigInteger.ZERO),
            Hex.hexToLong(gasLimit, 0),
            Hex.hexToLong(nonce, -1),
            payload,
            callbackId);
    onSignTransactionListener.onSignTransaction(transaction);

}
 
@JavascriptInterface
public void onVideoDiscovered() {
    handler.post(new Runnable() {
        @Override
        public void run() {
            callbacks.onVideoElementDiscovered();
        }
    });
}
 
源代码15 项目: pe-protector-moe   文件: TaskManagerHtml.java
@JavascriptInterface
public String onPathDel(String taskName) {
    List<MapConfigBean> list = LitePal
            .where("name=?", taskName)
            .limit(1)
            .find(MapConfigBean.class);
    for (MapConfigBean bean : list) {
        bean.delete();
    }
    return onRefresh();
}
 
源代码16 项目: pe-protector-moe   文件: TaskManagerHtml.java
@JavascriptInterface
public void onPathEdit(String taskName) {
    Intent intent = new Intent(App.getContext(), HtmlActivity.class);
    intent.putExtra("type", HtmlActivity.HTML_MAP);
    intent.putExtra("name", taskName);
    intent.putExtra("config", "");
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    App.getContext().startActivity(intent);
}
 
源代码17 项目: pe-protector-moe   文件: TaskManagerHtml.java
@JavascriptInterface
public void onAddPath() {
    Intent intent = new Intent(App.getContext(), HtmlActivity.class);
    intent.putExtra("type", HtmlActivity.HTML_MAP);
    intent.putExtra("name", "");
    intent.putExtra("config", "");
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    App.getContext().startActivity(intent);
}
 
源代码18 项目: VideoOS-Android-SDK   文件: JsBridge.java
/***
 * 写入本地数据
 * @param jsonParams
 */
@JavascriptInterface
public void setStorageData(String jsonParams) {

    try {
        JSONObject json = new JSONObject(jsonParams);
        JSONObject msgObj = json.optJSONObject("msg");
        String key = msgObj.optString("key");
        String value = msgObj.optString("value");
        VenvyPreferenceHelper.putString(mContext, TextUtils.isEmpty(mDeveloperUserId) ? "" : mDeveloperUserId, key, value);

    } catch (JSONException e) {

    }
}
 
源代码19 项目: pe-protector-moe   文件: TaskManagerHtml.java
@JavascriptInterface
public boolean upLoad(String uploadData) {
    UpLoadDataBean bean = JSON.parseObject(uploadData, UpLoadDataBean.class);
    bean.username = Config.username;
    bean.uid = Integer.valueOf(Config.userId);
    bean.path = getConfig(bean.config);

    new Thread(() -> {
        Requests requests = new Requests.Builder()
                .url("http://cloud.protector.moe/config/paths/")
                .json(JSON.toJSONString(bean))
                .build()
                .execute();
        Log.i(TAG, "上传文件" + requests.status);
        Looper.prepare();
        if (requests.status == 201) {
            new SweetAlertDialog(this.activity, SweetAlertDialog.SUCCESS_TYPE)
                    .setTitleText("在线配置")
                    .setContentText("上传成功")
                    .setConfirmText("确定")
                    .setConfirmClickListener(SweetAlertDialog::cancel)
                    .show();
        } else {
            new SweetAlertDialog(this.activity, SweetAlertDialog.ERROR_TYPE)
                    .setTitleText("在线配置")
                    .setContentText("上传失败")
                    .setCancelText("确定")
                    .setCancelClickListener(SweetAlertDialog::cancel)
                    .show();
        }
        Looper.loop();
    }).start();
    return true;
}
 
源代码20 项目: pe-protector-moe   文件: TaskAddHtml.java
@JavascriptInterface
public void onFinish(String obj) {
    Log.i(TAG, "[任务] 用户请求添加任务" + obj);
    TaskManager manager = TaskManager.getInstance();
    manager.addTask(obj);
    callBack.onFinish(null);
}
 
源代码21 项目: pe-protector-moe   文件: PathDownloadHtml.java
@JavascriptInterface
public void download(String data) {
    DownloadPathBean pathBean = JSON.parseObject(data, DownloadPathBean.class);
    List<MapConfigBean> list = LitePal
            .where("name=?", pathBean.title)
            .find(MapConfigBean.class);
    for (MapConfigBean l : list) {
        l.delete();
    }
    MapConfigBean bean = new MapConfigBean();
    bean.name = pathBean.title;
    bean.data = pathBean.path_pe.replace("\\", "");
    bean.save();
}
 
源代码22 项目: Focus   文件: MJavascriptInterface.java
@android.webkit.JavascriptInterface
public void longClickImage(String img) {
    ALog.d("长按图片" +img);
    //显示下拉底部弹窗
    new XPopup.Builder(activity)
            .asCustom(new ImageManagePopupView(activity,img,null))
            .show();
}
 
@JavascriptInterface
public void setValues(String jsonValuesFromTokenView) {
    Map<String, String> updates;
    try
    {
        updates = new Gson().fromJson(jsonValuesFromTokenView, new TypeToken<HashMap<String, String>>() {}.getType());
    }
    catch (Exception e)
    {
        updates = new HashMap<>();
    }

    onSetValuesListener.setValues(updates);
}
 
源代码24 项目: pe-protector-moe   文件: SettingHtml.java
@JavascriptInterface
public void onFinish(String data) {
    Log.d(TAG, "收到设置:" + data);
    Setting setting = Setting.getInstance();
    setting.settingBean = JSON.parseObject(data, SettingBean.class);
    setting.save();
    callBack.onFinish(null);
}
 
源代码25 项目: VideoOS-Android-SDK   文件: JsBridge.java
@JavascriptInterface
public void removeObserver(String type, String jsFunction) {
    if (jsMap.containsKey(type)) {
        List<String> temp = jsMap.get(type);
        if (temp.contains(jsFunction)) {
            temp.remove(jsFunction);
        }
    }
}
 
源代码26 项目: GotoBrowser   文件: KcsInterface.java
@JavascriptInterface
public void kcs_axios_error(String error) {
    activity.runOnUiThread(() -> {
        String text = String.format(Locale.US, "[Error] %s", error);
        ((TextView) activity.findViewById(R.id.kc_error_text)).setText(text);
    });
}
 
源代码27 项目: Focus   文件: MJavascriptInterface.java
@android.webkit.JavascriptInterface
public void longClickImage(String img) {
    ALog.d("长按图片" +img);
    //显示下拉底部弹窗
    new XPopup.Builder(activity)
            .asCustom(new ImageManagePopupView(activity,img,null))
            .show();
}
 
源代码28 项目: RichWebList   文件: JavaScriptLog.java
/**
 * 点击图片
 */
@JavascriptInterface
public void clickImage(String src){
    LogUtil.v(TAG,"webview点击图片:"+src);
    if (clickImageCallBack!=null){
        clickImageCallBack.clickImage(src);
    }
}
 
源代码29 项目: xGetter   文件: GDrive2020.java
@SuppressWarnings("unused")
@JavascriptInterface
public void error() {
    new Handler(Looper.getMainLooper()).post(new Runnable() {
        @Override
        public void run() {
            destroyWebView();
            out(null);
        }
    });
}
 
源代码30 项目: VideoOS-Android-SDK   文件: JsBridge.java
@JavascriptInterface
public void setConfig(String jsParams) {
    try {
        JSONObject json = new JSONObject(jsParams);
        JSONObject payStatus = json.optJSONObject("msg");
        payDisabled = payStatus.optBoolean("payDisabled");
        //todo
    } catch (JSONException e) {

    }
}