2013-05-21 65 views
0

對於HTML5-Jquery Mobile Android應用程序,我使用本機代碼訪問相機。我成功地從相機獲取圖像並在本地網頁上顯示它們。我遇到的問題是,當相機意圖關閉時,我的網頁似乎只是第二次重新打開自己,只是這一次JavaScript沒有執行。當我按下設備上的後退按鈕時,我會再次重定向到右頁。Android在onActivityResult後打開新頁面

如何讓我的頁面不會打開兩次?

我用下面的代碼來訪問我的相機:

mWebView.addJavascriptInterface(new Object() { 
     @SuppressLint("SimpleDateFormat") 
     public void performClick() { 
      Intent cameraIntent = new Intent(
        android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
      String timeStamp = new SimpleDateFormat("yyyy.MM.dd_HH.mm.ss") 
        .format(new Date()); 
      IMG = new File(APP_LOCATION + File.separator + "images", 
        timeStamp + ".jpg"); 
      IMG_LOCATION = Uri.fromFile(IMG); 
      cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, IMG_LOCATION); 
      startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST); 
     } 
    }, "openCamera"); 


@SuppressLint("SimpleDateFormat") 
@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 
    if (requestCode == CAMERA_PIC_REQUEST) { 
     if (resultCode == RESULT_OK) { 
      if (data != null) { 
       storeImage(data.getData(), IMG); 
      } else { 
       storeImage(IMG_LOCATION, IMG); 
      } 
      // Call JavaScript function to display image on the webpage 
      mWebView.loadUrl("javascript:setImage(\"" + IMG_LOCATION 
        + "\")"); 
     } 
    } 
} 

回答

0

這個清單文件添加到您的活動代碼

android:configChanges="orientation|keyboardHidden" 
+0

感謝您的回覆。我試過了,但沒有任何改變。 – MrJM

0

它似乎並不像從onActivityResult的JavaScript調用。使用以下代替簡單的loadUrl調用:

// Call JavaScript function to display image on the webpage 
RunOnUiThread(new Java.Lang.Runnable(() => 
    @Override 
    public void run() { 
     mWebView.loadUrl("javascript:setImage(\"" + IMG_LOCATION 
      + "\")"); 
    } 
});