2015-03-26 2 views
0

Я создал приложение Xpages, которое в настоящее время отображается в приложении iOS и отлично работает. В моей версии Android те же кнопки не работают. Я нажимаю на него, и ничего не происходит.Xpages Mobile Controls не работает с веб-дизайном Android

Он отлично работает в Chrome на ПК.

Он также отлично работает в браузере на моем тестовом Android-устройстве.

Он просто не работает в веб-браузере, встроенном в Android-приложение.

Нужно ли использовать другой тип webView?

Вот код Java:

package com.scoular; 

import android.os.Bundle; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 
import android.widget.Toast; 

import java.io.BufferedWriter; 
import java.io.File; 
import java.io.FileWriter; 
import java.io.IOException; 

import static com.XXXXX.utils.XXXXX.getPreference; 

public class ExpensesActivity extends MainActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_expenses); 
     String email = getPreference(this, R.string.email); 
     String password = getPreference(this, R.string.password); 
     String s = "<html>" + 
       "<head>" + 
       "<form action=\"https://XXXXm/XXXXX.nsf?Login\"" + 
       "method =\"POST\" name =\"LogonForm\">" + 
       "<input type=\"hidden\" name=\"Username\"" + 
       "value=\"" + email + "\">" + 
       "<input type=\"hidden\" name=\"Password\"" + 
       "value=\"" + password + "\">" + 
       "<input type=\"hidden\" name=\"RedirectTo\"" + 
       "value=\"https://XXXXXX/XXXXX.nsf/m_XXXXXX.xsp\">" + 
       "</form>" + 
       "</head>" + 
       "<script>" + 
       "document.forms[0].submit()" + 
       "</script>" + 
       "</html>"; 
     File outputDir = this.getApplicationContext().getCacheDir(); 
     File outputFile = null; 
     try { 
      outputFile = File.createTempFile("temp", "html", outputDir); 
      FileWriter writer = new FileWriter(outputFile); 
      BufferedWriter bWriter = new BufferedWriter(writer); 
      bWriter.write(s); 
      bWriter.close(); 
     } catch (IOException e) { 
      Toast.makeText(this.getApplicationContext(), "Got IOException: " + e, Toast.LENGTH_LONG).show(); 
     } 
     WebView webView = (WebView) findViewById(R.id.expenses_web_view); 
     webView.getSettings().setJavaScriptEnabled(true); 

     webView.setWebViewClient(new WebViewClient()); 
     webView.loadUrl("file:///" + outputFile.getAbsolutePath()); 
    } 
} 

А вот кнопка часть XPage

  <xp:button value="Approves" id="button3" 
       styleClass="mblButton" style="font-weight:bold"> 
       <xp:eventHandler event="onclick" submit="true" 
        refreshMode="complete" id="eventHandler3"> 
        <xp:this.action> 
              <xp:actionGroup> 
          <xp:changeDocumentMode mode="edit" 
           var="document1"/> 
          <xp:confirm message="Approved" /> 
          <xp:modifyField name="Action" 
           value="Approve" var="document1" /> 
          <xp:saveDocument var="document1" /> 
          <xp:executeScript> 
           <xp:this.script><![CDATA[#{javascript:var agent=database.getAgent("MobileApproval"); 
var doc:NotesDocument = document1.getDocument(); 
agent.runOnServer(doc.getNoteID()); }]]></xp:this.script> 
          </xp:executeScript> 
          <xe:moveTo targetPage="homePage" /> 
         </xp:actionGroup> 
        </xp:this.action> 
       </xp:eventHandler> 
      </xp:button> 

ответ

1

Потребовалось некоторое время, но я нашел решение.

Метод, который я использовал был

setWebViewClient

, который работает для основного материала и не запускать JavaScript, но не признают, нажимает на кнопки.

я перешел на

setWebChromeClient

и теперь все работает.

Смежные вопросы