|
12 | 12 | import android.text.TextUtils; |
13 | 13 | import android.webkit.JavascriptInterface; |
14 | 14 |
|
| 15 | +import org.json.JSONArray; |
15 | 16 | import org.json.JSONException; |
16 | 17 | import org.json.JSONObject; |
17 | 18 |
|
@@ -255,45 +256,52 @@ public void commonTrack(final String jsParams) { |
255 | 256 | */ |
256 | 257 | @JavascriptInterface |
257 | 258 | public void openAds(String jsParams) { |
| 259 | + if (mPlatform == null) { |
| 260 | + return; |
| 261 | + } |
| 262 | + if (TextUtils.isEmpty(jsParams)) |
| 263 | + return; |
258 | 264 | try { |
259 | | - if(TextUtils.isEmpty(jsParams)) |
| 265 | + JSONObject msgObject = new JSONObject(jsParams); |
| 266 | + if (msgObject == null) { |
260 | 267 | return; |
261 | | - JSONObject msgObject= |
262 | | - JSONObject jsonObject = new JSONObject(jsParams); |
263 | | -// VenvyLog.d("openAds : " + jsonObject.toString()); |
| 268 | + } |
| 269 | + JSONObject jsonObject = msgObject.optJSONObject("msg"); |
| 270 | + if (msgObject == null) { |
| 271 | + return; |
| 272 | + } |
264 | 273 | if (jsonObject.has("targetType")) { |
265 | 274 | String targetType = jsonObject.optString("targetType"); |
266 | 275 | JSONObject linkData = jsonObject.optJSONObject("linkData"); |
267 | 276 | String downAPI = jsonObject.optString("downloadApkUrl"); |
268 | | - String deepLink = linkData.optString("deepLink"); |
269 | 277 | // targetType 1 落地页 2 deepLink 3 下载 |
270 | 278 | if (targetType.equalsIgnoreCase("3")) { |
271 | 279 | JSONObject downloadTrackLink = jsonObject.optJSONObject("downloadTrackLink"); |
272 | 280 | Bundle trackData = new Bundle(); |
273 | 281 | trackData.putString(VenvyObservableTarget.Constant.CONSTANT_DOWNLOAD_API, downAPI); |
274 | | - trackData.putStringArray("isTrackLinks", JsonUtil.toStringArray(downloadTrackLink.optJSONArray("isTrackLinks"))); |
275 | | - trackData.putStringArray("dsTrackLinks", JsonUtil.toStringArray(downloadTrackLink.optJSONArray("dsTrackLinks"))); |
276 | | - trackData.putStringArray("dfTrackLinks", JsonUtil.toStringArray(downloadTrackLink.optJSONArray("dfTrackLinks"))); |
277 | | - trackData.putStringArray("instTrackLinks", JsonUtil.toStringArray(downloadTrackLink.optJSONArray("instTrackLinks"))); |
278 | | - trackData.putString("launchPlanId",jsonObject.optString("launchPlanId")); |
| 282 | + trackData.putStringArray("isTrackLinks", toStringArray(downloadTrackLink.optJSONArray("isTrackLinks"))); |
| 283 | + trackData.putStringArray("dsTrackLinks", toStringArray(downloadTrackLink.optJSONArray("dsTrackLinks"))); |
| 284 | + trackData.putStringArray("dfTrackLinks",toStringArray(downloadTrackLink.optJSONArray("dfTrackLinks"))); |
| 285 | + trackData.putStringArray("instTrackLinks", toStringArray(downloadTrackLink.optJSONArray("instTrackLinks"))); |
| 286 | + trackData.putString("launchPlanId", jsonObject.optString("launchPlanId")); |
279 | 287 | ObservableManager.getDefaultObserable().sendToTarget(VenvyObservableTarget.TAG_DOWNLOAD_TASK, trackData); |
280 | 288 | } else { |
281 | 289 | // 走Native:widgetNotify() 逻辑 |
282 | 290 | WidgetInfo.Builder builder = new WidgetInfo.Builder() |
283 | 291 | .setWidgetActionType(WidgetInfo.WidgetActionType.ACTION_OPEN_URL) |
284 | 292 | .setUrl(""); |
285 | 293 | if (targetType.equalsIgnoreCase("1")) { |
286 | | - builder.setLinkUrl(downAPI); |
| 294 | + builder.setLinkUrl(linkData.optString("linkUrl")); |
287 | 295 | } else if (targetType.equalsIgnoreCase("2")) { |
288 | | - builder.setDeepLink(deepLink); |
| 296 | + builder.setDeepLink(linkData.optString("deepLink")); |
289 | 297 | } |
290 | 298 | WidgetInfo widgetInfo = builder.build(); |
291 | | - if (platform.getWidgetClickListener() != null) { |
292 | | - platform.getWidgetClickListener().onClick(widgetInfo); |
| 299 | + if (mPlatform.getWidgetClickListener() != null) { |
| 300 | + mPlatform.getWidgetClickListener().onClick(widgetInfo); |
293 | 301 | } |
294 | 302 | } |
295 | 303 | } |
296 | | - }catch (Exception e){ |
| 304 | + } catch (Exception e) { |
297 | 305 | e.printStackTrace(); |
298 | 306 | } |
299 | 307 | } |
@@ -859,4 +867,14 @@ private JSONObject getVideoInfo() { |
859 | 867 |
|
860 | 868 | return jsonObject; |
861 | 869 | } |
| 870 | + |
| 871 | + private String[] toStringArray(JSONArray array) throws JSONException { |
| 872 | + if (array == null) return new String[]{}; |
| 873 | + |
| 874 | + String[] args = new String[array.length()]; |
| 875 | + for (int i = 0, len = array.length(); i < len; i++) { |
| 876 | + args[i] = String.valueOf(array.get(i)); |
| 877 | + } |
| 878 | + return args; |
| 879 | + } |
862 | 880 | } |
0 commit comments